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.
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.
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.
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.
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
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.
Thanks..would u let me know the actual issue..screenshots are not coming or??
when initiated from plsql api..i am not able to see the instances in soa em in 12c
Would you try the same from EM to make sure that it’s working..and how are you producing the event using plsql api..
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;
=========================================
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’’||
‘ ‘ ||
<>
” ||
”;
=============================================
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;
Where are the XML tags? I have given you the template of the payload which you should try it out..