SOA 12c – EDN –Using AQ JMS

In this post, We will see how to use AQJMS with EDN in SOA Suite 12c (Weblogic JMS is the default mechanism).

Navigate to Weblogic Domain –> <<your domain>> –> System MBean Browser –> oracle.as.soainfra.config –> <<SOA server>> –> EDNConfig-> edn. Modify JMS type to AQJMS as shown below.

aq1

This change will reflect in Business Events screen as shown below. You can observe JMS Type is shown as Oracle Advanced Queueing for UpdateOrder business event.

aq2

Clicking on JMS Mapping shows the default Connection Factories and Topic used. You can observe that JMS mapping is changed to use respective AQ resources.

aq3

After this change, restart the affected composites and publish Update Order business event to verify the generated log. Below, you can clearly observe that AQ Connection factory EDNxaTopic and AQ Topic EDNAQjmsTopic has been used. This log is generated when Update Order event consistency level is set to OneandOnlyOne and Durable property set to No.

[2014-12-27T21:35:49.171+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ‘5’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 368b87b8-a4fd-407a-855e-5e3d83be4c13-00000a99,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: 40010] [oracle.soa.tracking.InstanceId: 40024] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeCVlz^3z0WjLxyGOA1KbOd000000A] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/aqjms/EDNxaTopic EdnBus12c file://wsdl/eis/aqjms/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/aqjms/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Starting JCA LocalTransaction
[2014-12-27T21:35:49.171+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ‘5’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 368b87b8-a4fd-407a-855e-5e3d83be4c13-00000a99,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: 40010] [oracle.soa.tracking.InstanceId: 40024] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeCVlz^3z0WjLxyGOA1KbOd000000A] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/aqjms/EDNxaTopic EdnBus12c file://wsdl/eis/aqjms/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/aqjms/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Invoking JCA Outbound Interaction
[2014-12-27T21:35:49.184+05:30] [soa_server1] [NOTIFICATION] [] [oracle.soa.adapter.jms.outbound] [tid: [ACTIVE].ExecuteThread: ‘5’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 368b87b8-a4fd-407a-855e-5e3d83be4c13-00000a99,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: 40010] [oracle.soa.tracking.InstanceId: 40024] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeCVlz^3z0WjLxyGOA1KbOd000000A] JMSMessageProducer_produce: Successfully produced message with ID ID:AE8CF801AB594F6AA535BE5FB2654FC8 to destination jms/fabric/EDNAQjmsTopic
[2014-12-27T21:35:49.185+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ‘5’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 368b87b8-a4fd-407a-855e-5e3d83be4c13-00000a99,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: 40010] [oracle.soa.tracking.InstanceId: 40024] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeCVlz^3z0WjLxyGOA1KbOd000000A] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/aqjms/EDNxaTopic EdnBus12c file://wsdl/eis/aqjms/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/aqjms/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Committing JCA LocalTransaction.

Resources used by AQJMS for EDN

Consistency Level

Durable

Connection Factory (JNDI)

AQ Topic (JNDI)

OneandOnlyOne Yes eis/aqjms/EDNxaDurableTopic jms/fabric/EDNAQjmsTopic
OneandOnlyOne No eis/aqjms/EDNxaTopic jms/fabric/EDNAQjmsTopic
Guaranteed Yes eis/aqjms/EDNLocalTxDurableTopic jms/fabric/EDNAQjmsTopic
Guaranteed No eis/aqjms/EDNLocalTxTopic jms/fabric/EDNAQjmsTopic

Foreign Servers:

EDNAQjmsForeignServer

EDNAQjmsLocalTxForeignServer

Data Sources:

jdbc/EDNDataSource

jdbc/EDNLocalTxDataSource

Actual AQ Topic:

EDN_AQJMS_TOPIC

Remember the change of JMS type does not apply to Business Events where JMS mapping is done with a Custom Topic. For example, here Create Order Business Event is using Custom topic so JMS type is retained as Weblogic JMS even after modification in MBean.

aq4nochange

aq5nochange

With Durable set to Yes

Following is log generated when Durable property is set to Yes for Update Order Business Event. Here, can clearly observe that corresponding Durable Connection factory has been used and the same AQ Topic. Similarly you can try and verify log for Guaranteed consistency level with Durable property Yes/No.

[2014-12-30T22:54:27.420+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ’20’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: a9de2c34-beec-4e15-93d1-cee78dc3dc4e-000002c4,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: 60003] [oracle.soa.tracking.InstanceId: 60007] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeSEZAD3z0WjLxyGOA1Kcgt9000004] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/aqjms/EDNxaDurableTopic EdnBus12c file://wsdl/eis/aqjms/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/aqjms/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Starting JCA LocalTransaction
[2014-12-30T22:54:27.421+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ’20’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: a9de2c34-beec-4e15-93d1-cee78dc3dc4e-000002c4,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: 60003] [oracle.soa.tracking.InstanceId: 60007] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeSEZAD3z0WjLxyGOA1Kcgt9000004] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/aqjms/EDNxaDurableTopic EdnBus12c file://wsdl/eis/aqjms/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/aqjms/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Invoking JCA Outbound Interaction
[2014-12-30T22:54:27.628+05:30] [soa_server1] [NOTIFICATION] [] [oracle.soa.adapter.jms.outbound] [tid: [ACTIVE].ExecuteThread: ’20’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: a9de2c34-beec-4e15-93d1-cee78dc3dc4e-000002c4,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: 60003] [oracle.soa.tracking.InstanceId: 60007] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeSEZAD3z0WjLxyGOA1Kcgt9000004] JMSMessageProducer_produce: Successfully produced message with ID ID:B76D31728D484942A2DD718BD928F646 to destination jms/fabric/EDNAQjmsTopic
[2014-12-30T22:54:27.628+05:30] [soa_server1] [TRACE] [] [oracle.integration.platform.blocks.event.jms2.EdnBus12c] [tid: [ACTIVE].ExecuteThread: ’20’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: a9de2c34-beec-4e15-93d1-cee78dc3dc4e-000002c4,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: 60003] [oracle.soa.tracking.InstanceId: 60007] [oracle.soa.tracking.SCAEntityId: 11] [composite_name: EDNConsistencyCheck] [FlowId: 0000KeSEZAD3z0WjLxyGOA1Kcgt9000004] [SRC_CLASS: oracle.tip.adapter.fw.log.LogManagerImpl] [SRC_METHOD: log] eis/aqjms/EDNxaDurableTopic EdnBus12c file://wsdl/eis/aqjms/EDNxaDurableTopic-OUTBOUND.wsdl [ eis/aqjms/EDNxaDurableTopic-OUTBOUND::enqueue(part,part) ] – Committing JCA LocalTransaction

10 Responses to “SOA 12c – EDN –Using AQ JMS”


  1. 1 Ramanath yadav January 8, 2015 at 5:10 PM

    Hi Shiva,

    I am the great fan of your articals regarding fusion middleware. i am able to see the content of your blog but i am not able to see the Screen window diagrams.

    Please let me know how can see the screens.

    • 2 svgonugu January 8, 2015 at 9:48 PM

      Thanks..would u let me know the actual issue..screenshots are not coming or??

      • 3 saileshan August 16, 2016 at 6:14 PM

        when initiated from plsql api..i am not able to see the instances in soa em in 12c

        • 4 svgonugu August 16, 2016 at 7:24 PM

          Would you try the same from EM to make sure that it’s working..and how are you producing the event using plsql api..

          • 5 Anonymous August 17, 2016 at 11:33 PM

            From Em .. when i trigger or initiating its creating the instance..but from from plsql api I am not able to see the instances..

            ==============================================

            create or replace
            procedure call_edn_test
            as
            begin
            edn_publish_event(
            ‘http://schemas.oracle.com/events/edl/TestEvent’,
            ‘EventElement’,

            ns1:EventElement
            d4cbd406-9c56-4f50-a8e5-2b59a0f02c87

            action from plsql
            description from plsql

            ‘, ‘1’);
            end;

            begin
            call_edn_test();
            commit;
            end;

            =========================================

            • 6 svgonugu August 18, 2016 at 4:35 PM

              Could you try constructing your payload as below and use TO_CLOB(l_event_payload)) while calling EDN pl/sql API.

              l_event_payload VARCHAR2(32000);

              l_event_payload := ‘ ‘||
              ‘ob:‘EventElement’’||
              ‘ ‘ ||
              <>
              ” ||
              ”;

              • 7 saileshan August 18, 2016 at 9:49 PM

                =============================================

                even I tried the below..still no luck..

                DECLARE
                NAMESPACE VARCHAR2(500);
                LOCAL_NAME VARCHAR2(500);
                PAYLOAD VARCHAR2(5000);
                BEGIN
                NAMESPACE := ‘http://schemas.oracle.com/events/edl/TestEvent’;
                LOCAL_NAME := ‘TestEvent’;
                PAYLOAD := (‘
                ob:TestEvent

                abcd
                saileshan
                ‘);

                EDN_PUBLISH_EVENT( NAMESPACE => NAMESPACE, LOCAL_NAME => LOCAL_NAME, PAYLOAD => PAYLOAD);
                Commit;
                END;


  1. 1 SOA 12c – EDN Articles by Silva | SOA Community Blog Trackback on June 5, 2015 at 11:01 AM
  2. 2 SOA 12c – EDN Articles | Siva's Blog Trackback on January 5, 2015 at 10:57 PM

Leave a reply to svgonugu Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.




Pages

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 379 other subscribers

Enter your email address to follow this blog and receive notifications of new posts by email.