Inbound JMS adapter with MapMessage
I'm sharing the following problem and solution with using the OEP inbound message adapter because it may be
a common situation occurring to other users.
Recently was using the inbound JMS adapter with its default (OEP internal) converter from JMS MapMessage
messages to OEP events. The inbound adapter was receiving MapMessage messages but it was not assigning
values to the corresponding attributes in the specified input event instance.
The problem was that I was not properly creating the MapMessage messages in the JMS producer client.
I was using method setStringProperty() instead of method setString(), which is what is needed to set name/value
pairs of type String, and similarly with other primitive Java data types. Here's a code snippet for building and sending
a MapMessage on the client side:
try {
mapm = qsess.createMapMessage();
mapm.setString("valueType1", "value1");
mapm.setString("valueType2", "value2");
mapm.setInt("valueType3", 5);
producer.send(mapm);
} catch (JMSException jmse) {
jmse.printStackTrace(System.err);
System.exit(0);
Regards,
Mauricio
OSB JMS config:
<queue name="RequestQ">
<sub-deployment-name>wlsbJMSServer</sub-deployment-name>
<jndi-name>RequestQ</jndi-name>
</queue>
<queue name="ResponseQ">
<sub-deployment-name>wlsbJMSServer</sub-deployment-name>
<jndi-name>ResponseQ</jndi-name>
</queue>
Business service in OSB from where message is sent to the "ResponseQ" which is consumed by CEP.
Jms Inbound CEP Config:
<jms-adapter>
<name>jmsAdapterInbound</name>
<jndi-provider-url>t3://10.227.145.164:7005</jndi-provider-url>
<connection-jndi-name>weblogic.jms.XAConnectionFactory</connection-jndi-name>
<destination-jndi-name>ResponseQ</destination-jndi-name>
<user>weblogic</user>
<password>weblogic123</password>
<work-manager>JettyWorkManager</work-manager>
<concurrent-consumers>1</concurrent-consumers>
<session-transacted>false</session-transacted>
</jms-adapter>
Similar Messages
-
Problem: The inbound adapter is not triggered at all.
I have an EPN with an inbound JMS adapter listening to a JMS Queue hosted in my 11g Jdev SOA Suite. The queue is populated from a SOA composite. I can see the messages in the queue and my CEP application is deployed succesfully, but my JMS Adapter doesn't get any.
Here's the relevant section from EPN xml file:
{color:#3366ff}<bean id="OrderConverter" class="agb.foc.order.OrderMessageConverter"/>
<wlevs:adapter id="OrderIn" provider="jms-inbound">
<wlevs:instance-property name="converterBean" ref="OrderConverter"/>
</wlevs:adapter>
{color}
Here's my jms-adapter xml file:
{color:#3366ff}<jms-adapter>
<name>OrderIn</name>
<jndi-provider-url>t3://localhost:7001</jndi-provider-url>
<connection-jndi-name>weblogic/jms/ConnectionFactory</connection-jndi-name>
<destination-jndi-name>agb/jms/TestQueue</destination-jndi-name>
<user>weblogic</user>
<password>weblogic</password>
<concurrent-consumers>1</concurrent-consumers>
<session-transacted>false</session-transacted>
</jms-adapter>{color}
And the queue details from the weblogic admin console:
{color:#3366ff}Name: AgbTestQueue
Type: Queue
JNDI Name: agb/jms/TestQueue{color}
Note: I'm using CEP 10gR3 with Eclipse IDE and 11g Jdeveloper SOA suite internal release which comes after TP4.
Thanks in advance
Alosh
Edited by: aloshbennett on Feb 9, 2009 10:44 PM
formattingUPDATE:
If I send the messages via a standalone java client, CEP is accepting them.
The difference I see in both the messages is
{color:#c0c0c0}SOA messages arrive in the queue with JMSXDeliveryCount property set to 1, while standalone client messages arrive in the queue with JMSXDeliveryCount set to 0.
{color}
{color:#c0c0c0}
Why does the messages from SOA composite arrive with JMSXDeliveryCount set to 1? Why does that prevent CEP from receiving them?{color}
EDIT Again: The messages look identical from the admin console. The JMSXDeliveryCount goes up because the delivery to CEP fails and it could be a red herring.
If I export the messages from SOA Composite to a file and import them back, CEP picks them up.
Help!
Edited by: aloshbennett on Feb 10, 2009 8:09 AM -
Problem with Send using JMS Adapter with Websphere MQ
Hi,
We have two scenarios using JMS Adapter with MQ:
1. File->PI->MQ
This works fine and drop the file in MQ correctly.
2. MQ->PI->File
This gives an error reading from the queue: (see highlighted in the log below). It correctly connects to the queue name. But it fails with the message "Could not begin a AF transaction".
Our PI version is 7.0 SP 13
Websphere MQ Version 6.0.
Any idea what could be wrong?
Cluster Node Administration Information Availability Times
Cluster Node Details for Channel CC_JMS_MQ_Sender
Short Log
In the Last 4 Hours Server 0 15_92786
_Sucessfully connected to destination 'queue:///MMPP.PLM.FGH41? CCSID=37&targetClient=1'_
Line 1 / 1
Processing Details for Cluster Node Server 0 15_92786
Type
Time Stamp
Message ID
Explanation
9/2/08 2:27:28 PM 2e6206f0-7925-11dd-bc02-0003bae50b4d Error while processing message '2e6206f0-7925-11dd-bc02-0003bae50b4d'; _detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Could not begin a AF transaction: TxManagerException: Unable to open transaction: com.sap.engine.services.ts.exceptions.BaseSystemException at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filterSend(TxManagerFilter.java:103) ..._
9/2/08 2:27:28 PM 2e6206f0-7925-11dd-bc02-0003bae50b4d XI message ID corresponding to JMS message with ID 'ID:414d512071736431202020202020202047d9462024028b02' will be created as a new GUID with value '2e6206f0-7925-11dd-bc02-0003bae50b4d'
Amith DharmasiriChecked the drivers installed in :
/usr/sap/<SID>/DVEBMGS<SYSNO>
/j2ee/cluster/server0/bin/ext/com.sap
.aii.af.jmsproviderlib
They are available and properly added to aii_af_jmsproviderlib.sda.
The drivers are:
CL3Export.jar
CL3Nonexport.jar
com.ibm.mq.jar
com.ibm.mqjms.jar
connector.jar
dhbcore.jar
rmm.jar
These were installed per OSS note 747601.
Any other suggestions, why retrieving from MQ doesn't work? -
Debugging JMS adapter with Module Configuration
Hi.
I have a problem debugging my JMS adapter with module configuration.
All I get from the Message Monitor is a status "System Error", and no error category or error message.
I know there's an error in my Module configuration design, since it works fine without.
My configuration looks like this:
PROCESSING SEQUENCE:
1 localejbs/AF_Modules/MessageTransformBean Local Enterprise Bean XML2Plain
2 localejbs/SAP XI JMS Adapter/ConvertMessageToBinary Local Enterprise Bean convert_XI2Bin
3 localejbs/SAP XI JMS Adapter/SendBinarytoXIJMSService Local Enterprise Bean exit
MODULE CONFIGURATION:
XML2Plain Transform.Class com.sap.aii.messaging.adapter.Conversion
XML2Plain Transform.ContentType text/plain;charset=utf-8
XML2Plain xml.conversionType StructXML2Plain
XML2Plain xml.addHeaderLine 0
XML2Plain xml.recordsetStructure STARTRECORD,DATARECORD,SERVICEYDELSERRECORD,SLUTRECORD
XML2Plain xml.STARTRECORD.fieldFixedLengths 2,8,6,7,10,7,3,3
XML2Plain xml.DATARECORD.fieldFixedLengths 2,8,6,4,35,17,7,7,7,5,5,5,18,18,18,18,18,18,18,18,18,9
XML2Plain xml.SERVICEYDELSERRECORD.fieldFixedLengths 2,8,6,4,3,20,18,18,18
XML2Plain xml.SLUTRECORD.fieldFixedLengths 2,8,6,7,10,7
XML2Plain xml.STARTRECORD.fixedLengthTooShortHandling Cut
XML2Plain xml.DATARECORD.fixedLengthTooShortHandling Cut
XML2Plain xml.SERVICEYDELSERRECORD.fixedLengthTooShortHandling Cut
XML2Plain xml.SLUTRECORD.fixedLengthTooShortHandling Cut
The structure of the message looks like this:
<STARTRECORD> (occurence = 1)
<DATARECORD> (occurence = 1..unbounded)
--- <SERVICEYDELSERRECORD> (occurence = 0..unbounded)
<SLUTRECORD> (occurence = 1)
I've crosschecked every field, and it length and all looks like it should!
The worst part is the one not getting the reason why it fails. Any way I can get this information?
I've tried to look in the Adapter Framework log, but I have no clue where to look for anything usefull.
Help
Regards PeterHello,
Below is the module configuration in my JMS sender channel:
Check Message Local Enterprise Bean key
ConvertJMSMessageToBinary Local Enterprise Bean convert_JMS2Bin
ConvertBinaryToXMBMessage Local Enterprise Bean convert_Bin2XI
CallSapAdapter Local Enterprise Bean call_AF_MS
CheckMessage is a custom module which does some check on the incoming message.
Now what I want to know is at which position should I include the DynamicConfiguration Bean? Should it be included at position 1 or at position 2 or someother position?
~Thanks. -
Sender JMS Adapter with EOIO Quality of Service
Hi,
I have a sender JMS adapter with a quality of service as EOIO. In the SAP help it says that I need to specify the "Processing J2EE Cluster Server (Cluster ID)". Just wondering how I get this value? Does anyone have an example?
Thanks,
KrishneelHi,
Please go through the bleow Wiki:
http://wiki.sdn.sap.com/wiki/display/XI/FAQ+J2EEJMS+Adapter
http://help.sap.com/saphelp_nwpi71/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
Thanks,
satya -
Error in Inbound JMS adapter(in ESB project)
Hello all,
I am trying out a sample ESB application, where an ESB service is listening on a JMS topic (OEMS database persistence) for new employee notifications. Upon receiving the message, the service will invoke a stored procedure to insert a record in the database.
I am using inbound jms adapter to receive the jms messages from a jms topic, that is configured using Oracle AQ. I made all the necessary changes in oc4j-ra.xml, application.xml, and data-sources.xml files.
But when I send a jms messages, I see the following errors in the oc4j log.xml:
Failed to activate endpoint for Service "DefaultSystem.AQJMStoDB.ListenForNewEmployees". Reason : oracle.tip.esb.server.common.exceptions.BusinessEventFatalException: An unhandled exception has been thrown in the ESB system. The exception reported is: "ORABPEL-12517
AdapterFrameworkImpl::endpointActivation - Endpoint Activation Error.
The Resource Adapter was unable to activate the endpoint :{} due to the following reason: ORABPEL-12531
Error while setting JCA WSDL Property.
Property setPassword cannot be set on oracle.tip.adapter.jms.JmsManagedConnectionFactory due to: [Caused by: Can't find bundle for base name oracle.tip.pc.infra.exception.i18n.PCExceptionList, locale en_US]
Please verify the spelling of the property.
[Caused by: Can't find bundle for base name oracle.tip.pc.infra.exception.i18n.PCExceptionList, locale en_US]
Please correct the reported issue and redeploy the BPEL process.
at oracle.tip.adapter.fw.jca.AdapterFrameworkImpl.endpointActivation(AdapterFrameworkImpl.java:566)
at oracle.tip.esb.server.service.impl.inadapter.ESBActivationAgent.activateInboundJcaEndpoint(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.ESBActivationAgent.performEndpointActivation(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.ESBActivationAgent.activateEndpoint(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.InboundAdapterService.activateEndpoint(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.InboundAdapterService.activateService(Unknown Source)
at oracle.tip.esb.server.service.EsbServiceFactory.activateEsbService(Unknown Source)
at oracle.tip.esb.server.service.EsbServiceFactory.initializeEsbServices(Unknown Source)
at oracle.tip.esb.server.common.RuntimeESBSystem.start(Unknown Source)
at oracle.tip.esb.common.system.SystemFactory.startSystemsForCluster(Unknown Source)
at oracle.tip.esb.server.bootstrap.RuntimeResourceAdapter.startListenersForSystems(Unknown Source)
at oracle.tip.esb.server.bootstrap.RuntimeResourceAdapter.startListeners(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter.startESBListeners(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter.setupRuntime(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter.initializeESB(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter$PingTester.run(Unknown Source)
at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
at java.lang.Thread.run(Thread.java:595)
Caused by: ORABPEL-12531
Error while setting JCA WSDL Property.
Property setPassword cannot be set on oracle.tip.adapter.jms.JmsManagedConnectionFactory due to: [Caused by: Can't find bundle for base name oracle.tip.pc.infra.exception.i18n.PCExceptionList, locale en_US]
Please verify the spelling of the property.
at oracle.tip.adapter.fw.wsdl.WSDLUtils.invokeSetMethod(WSDLUtils.java:763)
at oracle.tip.adapter.fw.wsdl.WSDLUtils.setCciSpecParameters(WSDLUtils.java:665)
at oracle.tip.adapter.fw.wsdl.WSDLUtils.setupManagedConnectionFactory(WSDLUtils.java:465)
at oracle.tip.adapter.fw.wsdl.WSDLUtils.setupManagedConnectionFactory(WSDLUtils.java:421)
at oracle.tip.adapter.fw.jca.AdapterLocator.findResourceAdapter(AdapterLocator.java:195)
at oracle.tip.adapter.fw.jca.AdapterFrameworkImpl.endpointActivation(AdapterFrameworkImpl.java:341)
... 20 more
Can anybody provide any inputs on this error?
Thanks,
PramAll,
Problem is solved. I changed the value for the Source directory & the adapter started to poll.
Thanx,
Homiar. -
Error in Inbound JMS adapter (ESB project)
Hello all,
I am trying out a sample ESB application, where an ESB service is listening on a JMS topic (OEMS database persistence) for new employee notifications. Upon receiving the message, the service will invoke a stored procedure to insert a record in the database.
I am using inbound jms adapter to receive the jms messages from a jms topic, that is configured using Oracle AQ. I made all the necessary changes in oc4j-ra.xml, application.xml, and data-sources.xml files.
But when I send a jms messages, I see the following errors in the oc4j log.xml:
Failed to activate endpoint for Service "DefaultSystem.AQJMStoDB.ListenForNewEmployees". Reason : oracle.tip.esb.server.common.exceptions.BusinessEventFatalException: An unhandled exception has been thrown in the ESB system. The exception reported is: "ORABPEL-12517
AdapterFrameworkImpl::endpointActivation - Endpoint Activation Error.
The Resource Adapter was unable to activate the endpoint :{} due to the following reason: ORABPEL-12531
Error while setting JCA WSDL Property.
Property setPassword cannot be set on oracle.tip.adapter.jms.JmsManagedConnectionFactory due to: [Caused by: Can't find bundle for base name oracle.tip.pc.infra.exception.i18n.PCExceptionList, locale en_US]
Please verify the spelling of the property.
[Caused by: Can't find bundle for base name oracle.tip.pc.infra.exception.i18n.PCExceptionList, locale en_US]
Please correct the reported issue and redeploy the BPEL process.
at oracle.tip.adapter.fw.jca.AdapterFrameworkImpl.endpointActivation(AdapterFrameworkImpl.java:566)
at oracle.tip.esb.server.service.impl.inadapter.ESBActivationAgent.activateInboundJcaEndpoint(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.ESBActivationAgent.performEndpointActivation(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.ESBActivationAgent.activateEndpoint(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.InboundAdapterService.activateEndpoint(Unknown Source)
at oracle.tip.esb.server.service.impl.inadapter.InboundAdapterService.activateService(Unknown Source)
at oracle.tip.esb.server.service.EsbServiceFactory.activateEsbService(Unknown Source)
at oracle.tip.esb.server.service.EsbServiceFactory.initializeEsbServices(Unknown Source)
at oracle.tip.esb.server.common.RuntimeESBSystem.start(Unknown Source)
at oracle.tip.esb.common.system.SystemFactory.startSystemsForCluster(Unknown Source)
at oracle.tip.esb.server.bootstrap.RuntimeResourceAdapter.startListenersForSystems(Unknown Source)
at oracle.tip.esb.server.bootstrap.RuntimeResourceAdapter.startListeners(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter.startESBListeners(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter.setupRuntime(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter.initializeESB(Unknown Source)
at oracle.tip.esb.server.bootstrap.ESBBaseResourceAdapter$PingTester.run(Unknown Source)
at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
at java.lang.Thread.run(Thread.java:595)
Caused by: ORABPEL-12531
Error while setting JCA WSDL Property.
Property setPassword cannot be set on oracle.tip.adapter.jms.JmsManagedConnectionFactory due to: [Caused by: Can't find bundle for base name oracle.tip.pc.infra.exception.i18n.PCExceptionList, locale en_US]
Please verify the spelling of the property.
at oracle.tip.adapter.fw.wsdl.WSDLUtils.invokeSetMethod(WSDLUtils.java:763)
at oracle.tip.adapter.fw.wsdl.WSDLUtils.setCciSpecParameters(WSDLUtils.java:665)
at oracle.tip.adapter.fw.wsdl.WSDLUtils.setupManagedConnectionFactory(WSDLUtils.java:465)
at oracle.tip.adapter.fw.wsdl.WSDLUtils.setupManagedConnectionFactory(WSDLUtils.java:421)
at oracle.tip.adapter.fw.jca.AdapterLocator.findResourceAdapter(AdapterLocator.java:195)
at oracle.tip.adapter.fw.jca.AdapterFrameworkImpl.endpointActivation(AdapterFrameworkImpl.java:341)
... 20 more
Can anybody provide any inputs on this error?
Thanks,
PramAll,
Problem is solved. I changed the value for the Source directory & the adapter started to poll.
Thanx,
Homiar. -
Payload level filter JMS Adapter with Queue - not filtering
Hi ,
I have created AQ Queue in my Database, Using JMS Adapter i am able consume and produce the messages. I want a filter condition, which is not happening.
The scenario is i have a field ImportInd in my XSD and i need to pick the message with ImportInd = 1, otherwise the message should lie on the queue.
Please help me in this,
Thanks,
PadminiTrying to give you the counterparts I have in my working example.
In my case the queue is on a separate machine, and the BPEL is deployed on a separate machine. Cross-domain security config needs to be done for these machines to be able to talk.
In weblogic console: where BPEL is running.
under deployment jmsadapter -> Outbound Connections -> jndi name is jms/PRISMQueue -> ConnectionFactoryLocation Property is jms/SoaCF
where queue is configured.
Under JMS Module Connection Factory Name is SoaConnectionFactory which JNDI name is jms/SoaCF
Under JMS Module Queue Name SOAPostActivityStatusQueue which JNDI name is jms.SOAPostActivityStatusQueue
Services>Messaging>JMSModules>MyModule>SOAPostActivityStatusQueue>
JNDI name - jms.SOAPostActivityStatusQueue
Adapter in BPEL/Composite-
Destination - jms.SOAPostActivityStatusQueue
JNDI - jms/PRISMQueue
JCA:
<adapter-config name="PostResponseFromPCService" adapter="JMS Adapter" wsdlLocation="PostResponseFromPCService.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
<connection-factory location="jms/PRISMQueue" UIJmsProvider="WLSJMS" UIConnectionName="tacoma"/>
<endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
<activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
<property name="PayloadType" value="TextMessage"/>
<property name="UseMessageListener" value="false"/>
<property name="DestinationName" value="jms.SOAPostActivityStatusQueue"/>
</activation-spec>
</endpoint-activation>
</adapter-config>
HTH.
Thanks! -
JMS-Adapter with persistent Queues (DB): ORABPEL-12166
Hi,
does anybody know what the error:
file:/C:/oracle/product/10.1.3.1/OracleAS_1/bpel/domains/Provisioning/tmp/.bpel_SenderProvisioning_1.0_bb735430814144c8f5f279c73842c3d4.tmp/JMS_Provisiong_A.wsdl [ Produce_Message_ptt::Produce_Message(Request) ] - WSIF JCA Execute of operation 'Produce_Message' failed due to: ERRJMS_ENQUEUE_ERR.
Die Nachricht konnte aufgrund von folgender Fehlerbedingung nicht in die Queue gestellt werden:.
; nested exception is:
ORABPEL-12166
ERRJMS_ENQUEUE_ERR.
Die Nachricht konnte aufgrund von folgender Fehlerbedingung nicht in die Queue gestellt werden:.
Weitere Informationen hierzu finden Sie in der Log-Datei.
means?
Where can i find the logs?This is most likely caused by a nonexistent or misconfigured queue.
For a JMS adapter, make sure your AQ queue/topic is set up as JMSType. Make sure you've spelled everything correctly.
To find the logs for ESB go to:
$ORACLE_HOME/j2ee/oc4j_soa/log/oc4j see log.xml
For BPEL go to
$ORACLE_HOME/bpel/domains/default/logs see domain.log
You may also find errors in the OPMN logs:
$ORACLE_HOME/opmn/logs
see default_group~oc4j_soa~default_group~1.log
You will have to turn up log levels to "FINE" or "FINER" for ESB or DEBUG for BPEL to get anything close to a meaningful message. For my most recent error on ESB the "FINER" setting yielded the following message for this error:
</MSG_TEXT>
<SUPPL_DETAIL><![CDATA[ORABPEL-12166
ERRJMS_ENQUEUE_ERR.
Could not enqueue message due to the following error condition:.
Please examine the log file to determine the problem.
at oracle.tip.adapter.jms.JMS.JMSMessageProducer.produce(JMSMessageProducer.java:237)
at oracle.tip.adapter.jms.outbound.JmsProducer.execute(JmsProducer.java:143)
at oracle.tip.adapter.jms.JmsInteraction.executeProduce(JmsInteraction.java:197)
at oracle.tip.adapter.jms.JmsInteraction.execute(JmsInteraction.java:156)
at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:485)
at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeInputOnlyOperation(WSIFOperation_JCA.java:736)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:497)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:430)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:447)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:184)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:112)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:106)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:85)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:105)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:273)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:212)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:197)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:82)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:69)
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.processMessage(ESBListenerImpl.java:369)
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.onMessage(ESBListenerImpl.java:295)
at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:293)
at oracle.tip.adapter.jms.inbound.JmsConsumer.doSend(JmsConsumer.java:571)
at oracle.tip.adapter.jms.inbound.JmsConsumer.sendInboundMessage(JmsConsumer.java:507)
at oracle.tip.adapter.jms.inbound.JmsConsumer.send(JmsConsumer.java:353)
at oracle.tip.adapter.jms.inbound.JmsConsumer.run(JmsConsumer.java:274)
at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.UnsupportedOperationException: publish is called without a valid Topic
at oracle.jms.AQjmsProducer.publish(AQjmsProducer.java:1252)
at oracle.tip.adapter.jms.JMS.JMSMessageProducer.produce(JMSMessageProducer.java:215)
... 34 more
Hope that helps. See the SOA admin guide for help with setting log levels:
Here's where you can find all App Server books for SOA Suite:
http://download-west.oracle.com/docs/cd/B31017_01/nav/docindex.htm
Peace,
G. -
Using JMS adapter with J2ee native queuing system
Hi there,
As far as I have understood J2EE contains it's own native queuing system (JMS). Since the J2EE is part of the WAS, shouldn't it be possible to somehow use XI's JMS adapter in conjunction with this native JMS?
I've tried to search many places in many ways, but haven't been able to find any info. Is it possible at all?
Hope, some of u guys can help out there:-)
Regards,
DanielHi Keith,
It looks as if you are in the same situation.
We have this working very nicely now and I'm happy to share. In fact I was just granted wiki permissions so I can add the information there along with screen shots.
Informaiton on this configuration is very scattered but I imagine many people would find it useful for integrating with Mainframes without adding any complexity to the legacy environment. Let me come back to you with some more inormation, but for now you can get started with this:
Insert a module as the 3rd line in your Module Processing Sequence to use AF_Modules/MessageTransformBean and give it a key in order to associate with the parameters you will need to type in below. These parameters are very similar to normal XI File adapter parameters.
SAP Note 793922 has more info on the parameters... not the greatest reference I know.
Also this has some info...
http://help.sap.com/saphelp_nw04/Helpdata/EN/57/0b2c4142aef623e10000000a155106/content.htm
I'll try and get some screen shots up on the Wiki. -
Problem in JMS-Adapter with CharacterSet Websphere MQ
Hi,
we have the following scenario:
JMS -> PI -> File
We have a local Websphere MQ Queue Manager and the follwoing configuration in our sender adapter:
Transport-Protocol: WebSphere MQ (non JMS)
Message-Protocol: JMS 1.x
ConnectionFactory: com.ibm.mq.jms.MQQueueConnectionFactory
Java-class Queue: com.ibm.mq.jms.MQQueue
CCSID: 819
Transport: TCP/IP
JMS-conform: WebSphere MQ (non JMS)
In the local queue manager the messages (XML-Messages with header <?xml version="1.0" encoding="ISO-8859-1"?>) have characterSet 819 (ISO-8859-1). That's correct. You can open the files with XMLSpy and it works.
When we receive the messages by our JMS Sender Adapter all the character seems to be in UTF-8 and I don't know why. All the special characters are wrong cause the header of the XML-message shows ISO-8859-1 but all the signs are decoded in UTF-8.
In the other direction (JMS Receiver adapter, File -> PI - JMS) we have the same problem.
We create a ISO-8859-1 message in mapping (and it is really ISO-8859-1) and send it via JMS Receiver Adapter to the local message queue. But there the message arrives in UTF-8 encoding. I don't understand this.
Does anybody know what could be the cause for this?
Does the JMS adapter convert the messages from ISO-8859-1 into UTF-8?
Are there any parameters we have to set?
I hope anybody has an idea what's wrong.
Regards
Thorsten
Edited by: Thorsten Hautz on Oct 12, 2010 5:42 PMHi,
thanks a lot for your replies.
our driver settings are correct (as I can see).
I removed value 819 from CCSID, but we have the same effect.
The messages in the local queue manager are TextMessages in XML.
Does anybody know, if we need the standard modules (ConvertJMSMessageToBinary and ConvertBinaryToXMBMessage) in this case?
Is it possible to set the CCSID for the message payload anywhere in the configuration?
The CCSID in the Source tab doesn't have any influence to the encoding of the payload message, only to the header data.
Regards
Thorsten -
Problem with calling AQ JMS Adapter with Asynchronous BPEL Process
I have a AQ JMS Adapter and i'm invoking the adapter in my BPEL process.
I'm passing an xml as payload to AQ JMS adapter. When i post the xml in the BPEL Control, i'm getting the follwoing message:
"Cannot find the specified instance". I have tried 3-4 times but getting same message all the time.
However, i'm able to publish xml to JMS Topic with synchronous BPEL process.
I want to use asynchronous BPLE process.
Please let me know if there is a way to overcome this issue.
Thanks in advance.
Thanx in Advance.I am experiencing the exact same issue while configuring for Tibco EMS!!!
I have also checked the oc4j-xa.xml file etc and I am also unable to find any guidance on the steps required from XML config files through to adapter wizard entries! -
Language support in JMS adapter with Oracle JDev 10.1.3.1
Hi,
I' using JDeveloper 10.1.3.1 with Oracle SOA Suite - ESB 10.1.3.1 in the following scenario:
1) Use Database adapter with "on insert" condition to read Student record with Chinese name (Unicode format) - ESB process
2) Use JMS adapter to push this data into "DemoTopic" as string - ESB process
3) Use Message Driven Bean's (EJB 3.0) "onMessage" method to fetch the data from JMS topic - J2EE app
4) Use JDBC executeUpdate to update this Chinese name into another database table - J2EE app
5) Finally, verify the updated Chinese name in ADF application - J2EE app
Prerequisites
1) The database charset on both sides of the flow is UTF8
2) The ADF application JSF page encoding is UTF8
3) The SOA Suite is installed on DB repository (UTF8 charset)
Result
1) The flow from Step 1-5 works.
2) But, the println of the JMS message (holding the Chinese name) gives "????" when checked with Wordpad (Unicode readable word processor)
3) Junk characters are inserted into the database
Please let me know where I'm going wrong. Also, let me know if I need to configure/set the character encoding in OC4J, or the JMS adapter and how.Hi all,
This is been resolved by using the AL32UTF8 character set in the database. JMS adapter by default supports UTF-8. No setting/configuration needs to be done. -
JMS adapter with complex messages
Each of our MQ Series messages contain several transactions. Our standard format is:
<Message>
<RecordSet(1..n)>
HeaderRecord
Item Record(1..n)
</RecordSet>
</Message>
Does anyone have an example for how this would be done in XI 3.0? I have seen how this can be done with the file adapter, but with the JMS adapter do I need to use BPM?
Thanks,
AndrewEach of our MQ Series messages contain several transactions. Our standard format is:
<Message>
<RecordSet(1..n)>
HeaderRecord
Item Record(1..n)
</RecordSet>
</Message>
Does anyone have an example for how this would be done in XI 3.0? I have seen how this can be done with the file adapter, but with the JMS adapter do I need to use BPM?
Thanks,
Andrew -
Hi,
I could not find very relevant documentation on this one, so asking the question here.
I am trying to use a JMS Adapter to read from a queue, and use the same interface(wsdl) for a mediator. In this mediator, I am trying to generate events based on the message payload received.
Somehow the Mediator does not read from the queue, but if I invoke the mediator as a service, and push the message, it works absolutely fine. Is that something I am missing?
Thanks in advance,
AbhiTrying to give you the counterparts I have in my working example.
In my case the queue is on a separate machine, and the BPEL is deployed on a separate machine. Cross-domain security config needs to be done for these machines to be able to talk.
In weblogic console: where BPEL is running.
under deployment jmsadapter -> Outbound Connections -> jndi name is jms/PRISMQueue -> ConnectionFactoryLocation Property is jms/SoaCF
where queue is configured.
Under JMS Module Connection Factory Name is SoaConnectionFactory which JNDI name is jms/SoaCF
Under JMS Module Queue Name SOAPostActivityStatusQueue which JNDI name is jms.SOAPostActivityStatusQueue
Services>Messaging>JMSModules>MyModule>SOAPostActivityStatusQueue>
JNDI name - jms.SOAPostActivityStatusQueue
Adapter in BPEL/Composite-
Destination - jms.SOAPostActivityStatusQueue
JNDI - jms/PRISMQueue
JCA:
<adapter-config name="PostResponseFromPCService" adapter="JMS Adapter" wsdlLocation="PostResponseFromPCService.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
<connection-factory location="jms/PRISMQueue" UIJmsProvider="WLSJMS" UIConnectionName="tacoma"/>
<endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
<activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
<property name="PayloadType" value="TextMessage"/>
<property name="UseMessageListener" value="false"/>
<property name="DestinationName" value="jms.SOAPostActivityStatusQueue"/>
</activation-spec>
</endpoint-activation>
</adapter-config>
HTH.
Thanks!
Maybe you are looking for
-
Using a string variable to create an object
Hi, I just have a quick question. It is probably very simple but I can not seem to find an asnwer anywhere. I have a class called Receive, from this class I derrive 12 difference other classes. I also have a hashtable with a bunch of Object objects.
-
Project Online with Project Pro for Office 365
Hi, I have several licences for Project Online with Project Pro for Office 365. Project Web App is working fine, as well as Excel Web App, Word Web App... I just miss Project Pro for Office 365. I don't know were to find it, how to activate it :-( T
-
Hello Friends, Currently Im doing INVOICE(domestic and export) LAYOUT script. Please tell me how to capture and display header text fields in billing document(VFO3) and also tell me that table name and field names. Thanks in advance. MohanKumar
-
Unable to move between PEAP (MSCHAPv2) to WPA2 Personal
I just started to have a problem changing from my wireless network at work to my home network. At the office, I authenticate using PEAP (MSCHAPv2) and connect just fine. I put the computer to sleep, to go home and when my MBP tries to connect to my W
-
I can't download In Design but I can download other apps with no problems?
I can't download In Design but I can download other apps like Photoshop with no problems? I have deleted and reinstalled Creative Cloud and it still tells me there is an error.