EDN documentation says:
You can create additional JMS topics (Oracle WebLogic Server JMS or AQ JMS) and map different event types to these additional JMS topics in Oracle Enterprise Manager Fusion Middleware Control.
In this post, we will see how to do this mapping of Business Event to Custom Topic.
This involves 2 steps:
- Create a new Topic.
- Modify the business event mapping in EM.
Creating a new Topic
Navigate to Services –> Messaging –> JMS Modules –> SoaJMSModule in Weblogic Administration console.
Modifying Business Event mapping
Navigate to SOA –> soa-infra –> SOA Infrastructure –> Business Events in EM and click JMS Mapping as shown below.
Modify JMS Topic Name with the custom topic created earlier. Typically, you don’t have to create new Connection Factories so retain them.
Click Apply and observe that JMS Mapping is shown as Modified.
[2014-12-25T15:03:03.752+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ‘9’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 364f79e6-6c77-415c-98e1-bb2219593f84-000005b4,0:2] [APP: soa-infra] [J2EE_APP.name: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: RaiseEvent_ep] [WEBSERVICE_PORT.name: execute_pt] [oracle.soa.tracking.FlowId: 20004] [oracle.soa.tracking.InstanceId: 20012] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000Ke0mhDn3z0WjLxyGOA1Kax2t000004] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/wls/EDNxaTopic EdnBus12c file://wsdl/eis/wls/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/wls/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Starting JCA LocalTransaction
[2014-12-25T15:03:03.753+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ‘9’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 364f79e6-6c77-415c-98e1-bb2219593f84-000005b4,0:2] [APP: soa-infra] [J2EE_APP.name: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: RaiseEvent_ep] [WEBSERVICE_PORT.name: execute_pt] [oracle.soa.tracking.FlowId: 20004] [oracle.soa.tracking.InstanceId: 20012] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000Ke0mhDn3z0WjLxyGOA1Kax2t000004] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/wls/EDNxaTopic EdnBus12c file://wsdl/eis/wls/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/wls/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Invoking JCA Outbound Interaction
[2014-12-25T15:03:03.757+05:30] [soa_server1] [NOTIFICATION] [] [oracle.soa.adapter.jms.outbound] [tid: [ACTIVE].ExecuteThread: ‘9’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 364f79e6-6c77-415c-98e1-bb2219593f84-000005b4,0:2] [APP: soa-infra] [J2EE_APP.name: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: RaiseEvent_ep] [WEBSERVICE_PORT.name: execute_pt] [oracle.soa.tracking.FlowId: 20004] [oracle.soa.tracking.InstanceId: 20012] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000Ke0mhDn3z0WjLxyGOA1Kax2t000004] JMSMessageProducer_produce: Successfully produced message with ID ID:<703459.1419499983756.0> to destination jms/fabric/EDNCustomTopic
[2014-12-25T15:03:03.758+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ‘9’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 364f79e6-6c77-415c-98e1-bb2219593f84-000005b4,0:2] [APP: soa-infra] [J2EE_APP.name: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: RaiseEvent_ep] [WEBSERVICE_PORT.name: execute_pt] [oracle.soa.tracking.FlowId: 20004] [oracle.soa.tracking.InstanceId: 20012] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000Ke0mhDn3z0WjLxyGOA1Kax2t000004] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/wls/EDNxaTopic EdnBus12c file://wsdl/eis/wls/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/wls/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Committing JCA LocalTransaction
[2014-12-25T15:03:03.760+05:30] [soa_server1] [NOTIFICATION] [] [oracle.soa.mediator.serviceEngine] [tid: [ACTIVE].ExecuteThread: ‘9’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 364f79e6-6c77-415c-98e1-bb2219593f84-000005b4,0:2] [APP: soa-infra] [J2EE_APP.name: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: RaiseEvent_ep] [WEBSERVICE_PORT.name: execute_pt] [oracle.soa.tracking.FlowId: 20004] [oracle.soa.tracking.InstanceId: 20012] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000Ke0mhDn3z0WjLxyGOA1Kax2t000004] Publishing Event= UpdateOrder ns http://xmlns.oracle.com/events/edl/OrderCreation successful
In above log, you can clearly observe that Business Event is published in our topic jms/fabric/EDNCustomTopic and default connection factory is used. You can refer to my previous post on how to generate this EDN log, if required.
Observations
- I had to set Quota as shown below to make this work. Initially it was set to None.
- Typically, we have to restart the affected composites after modifying the Business Event JMS mapping. And might also require SOA server restart sometimes at least when there are Durable subscribers for that event.
- When JMS mapping is modified for event for which Durable Subscribers exist, these are recreated for new topic and older ones are made just inactive.
- To revert JMS mapping for a Business Event, just click on Use Default JMS Topic as shown below and you have to restart affected composite, of course.
After this, you can also observe that JMS mapping is shown as Default.
- The Default JMS mapping and modified JMS mapping can also be found in MBean browser as shown below. You can navigate to here by selecting <<domain>> –> System MBean Browser –> Application Defined MBeans –> oracle.as.soainfra.config –> EDNConfig –> edn.
Hello Siva. Your series of posts involving EDN is simply fantastic. I have a question which will help me to take the decision whether to use EDN or not. What are the advantages to use EDN instead of default JMS Topics with traditional publisher and subscribers in Osb and Soa? You will help me a lot by answering it … See you guy, keep doing this awesome job.