Automation for JMS to DB
Hi All,
Can someone help me out reaching automation while performing data movement from a JMS QUEUE to ORACLE TABLE.
I think of doing it through CDC but JKM for JMS is not available.
Target to Achieve: Whenever there is a data in JMS QUEUE, without executing INTERFACE manually, DATA should move to ORACLE TABLE.
Solutions are appreciated.
a) You dont require any explicit parsers.
b) PLease see the below link for step by step instructions for using DB Adaptor:
http://www.oracle.com/technology/sample_code/products/osb/samples/OSB-DB-ADAPTER.zip
Similar Messages
-
Using MySQL DB on Weblogic 10.3.2 for JMS Store and etc.
Hi,
I am planning to use MySQL DB w Weblogic 10.3.2 server.
I am planning to use Persistent JMS Destinations and planning to use MySQL Datasource for JMS store.
Can anyone please help me understand any serious issues or considerations of this combination?
Thanks
SagarHi,
I am planning to use MySQL DB w Weblogic 10.3.2 server.
I am planning to use Persistent JMS Destinations and planning to use MySQL Datasource for JMS store.
Can anyone please help me understand any serious issues or considerations of this combination?
Thanks
Sagar -
Error while passing ODI variable in JNDI Url for JMS Queue XML
Hi,
Facing a weird problem while passing ODI variable in JNDI Url for JMS Queue XML.
Below is the JNDI Url configured under ODI Topology:
JNDI Url: t3://<host_location>?d=#TEST.SCHEMA_FILE&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
where,
#TEST.SCHEMA_FILE --> ODI variable storing xsd name and location
Issue Description:
If we restart ODI server then for the first run of any ODI interface using JMS Queue XML, it is unable to get the value for ODI variable present in JNDI Url (d=#TEST.SCHEMA_FILE).
It throws error message saying: No XSD found
Temporary Resolution:
As a temporary fix if we hard-code and pass the value in that ODI variable as shown below, it will successfully go through.
eg: JNDI Url: t3://<host_location>?d=C:\XSD\test.xsd&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
Reverting it back to variable later will have no issues and subsequent run will succeed.
But again anytime later if server is restarted then first run will have this issue.
Want to have permanent fix for it.
Any one having idea on it please share. Appreciate your help!What ODI version are you using? It could be related to the bug in the older version as described in support note Doc ID 1290326.1
-
Is there any tutorial for jms development with jdeveloper out there ?
Hi
Thank you for reading my post
is there any tutorial which show us how to use jdeveloper +oc4j for JMS stuff ?
I mean an end 2 end tutorial to build mdb+jms resources in oc4j + client
it will be far better if the tutorial shows how we can use jdeveloper features for this task (if it provide any wizard...)This is an example of a client:
public String listeningJMS (Context context) throws Exception
String topicName = "jms/demoTopic";
String topicConnectionFactoryName = "jms/TopicConnectionFactory";
TopicConnectionFactory topicConnectionFactory = null;
TopicConnection topicConnection = null;
TopicSession topicSession = null;
Topic topic = null;
TopicSubscriber topicSubscriber = null;
TextMessage message = null;
String fileName = null;
* Look up connection factory and topic. If either does
* not exist, exit.
try
topicConnectionFactory = (TopicConnectionFactory)
context.lookup(topicConnectionFactoryName);
topic = (Topic) context.lookup(topicName);
* Create connection.
* Create session from connection; false means session is
* not transacted.
* Create subscriber.
* Register message listener (TextListener).
* Receive text messages from topic.
* When all messages have been received, enter Q to quit.
* Close connection.
topicConnection =
topicConnectionFactory.createTopicConnection();
topicSession =
topicConnection.createTopicSession(false,
Session.AUTO_ACKNOWLEDGE);
topicSubscriber =
topicSession.createSubscriber(topic);
topicConnection.start();
System.out.println("Receiving: ");
TextMessage msg = (TextMessage) topicSubscriber.receive();
String xmlString =msg.getText();
topicConnection.close();
System.err.println("Received: "+xmlString);
fileName = this.getFileName(msg.getText());
} catch (Exception e) {
throw e;
} finally {
if (topicConnection != null) {
try {
topicConnection.close();
} catch (JMSException e) {throw e;}
return fileName;
public static Context getInitialContext() throws NamingException {
Hashtable env = new Hashtable();
// Standalone OC4J connection details
env.put( Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.rmi.RMIInitialContextFactory" );
env.put( Context.SECURITY_PRINCIPAL, "oc4jadmin" );
env.put( Context.SECURITY_CREDENTIALS, "welcome1" );
env.put(Context.PROVIDER_URL, "ormi://localhost:12401");
//env.put(Context.PROVIDER_URL, "ormi://localhost:23791");
return new InitialContext( env );
} -
Adapter Status Error : Error in creating message ID map for JMS message:
Currently in the SAP XI 3.0 JMS Adapter, I am receiving the following error
Error in creating message ID map for JMS message:
ie. Error while processing message 'de8265f6-c864-4479-1137-9bab17b78b3b'; detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Error in creating message ID map for JMS message: ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 at com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(InboundDuplicateCheckFilter.java:103)
Although I am receivng this error, when I check the details of the message processing, all steps are successful and the message is set to status : DLVD
Audit Log for Message: de8265f6-c864-4479-1137-9bab17b78b3b
Time Stamp Status Description
09.06.2009 13:27:24 Success New JMS message with JMS message ID ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 received. The XI message ID for this message is de8265f6-c864-4479-1137-9bab17b78b3b
09.06.2009 13:27:24 Success JMS message converted to XI message format successfully
09.06.2009 13:27:24 Success RRB: entering RequestResponseBean
09.06.2009 13:27:24 Success RRB: suspending the transaction
09.06.2009 13:27:24 Success RRB: passing through ...
09.06.2009 13:27:24 Success RRB: leaving RequestResponseBean
09.06.2009 13:27:24 Success Transform: using Transform.Class: com.sap.aii.messaging.adapter.Conversion
09.06.2009 13:27:24 Success Transform: transforming the payload ...
09.06.2009 13:27:24 Success Transform: successfully transformed
09.06.2009 13:27:24 Success Application attempting to send an XI message synchronously using connection JMS_http://sap.com/xi/XI/System.
09.06.2009 13:27:24 Success Trying to put the message into the call queue.
09.06.2009 13:27:24 Success Message successfully put into the queue.
09.06.2009 13:27:24 Success The message was successfully retrieved from the call queue.
09.06.2009 13:27:24 Success The message status set to DLNG.
09.06.2009 13:27:25 Success The application sent the message synchronously using connection JMS_http://sap.com/xi/XI/System. Returning to application.
09.06.2009 13:27:25 Success The message was successfully transmitted to endpoint http://sapxia.swets.nl:8000/sap/xi/engine?type=entry using connection JMS_http://sap.com/xi/XI/System.
09.06.2009 13:27:25 Success The message status set to DLVD.
Not sure why this is occurring.......No, not using correlation id.
I was able to resolve the issue on this queue by changing the following setting
Under the PROCESSING tab, under XI SETTINGS
Time period for Duplicate Check for EO(IO) (secs) it was set to 86400
I have changed this to 300 seconds and the adapter has now gone green.
BUT......
That said, I have the exact scenario on another sender JMS channel set to 300 seconds and it exhibits the same issue.
correlation settings:
Set XI message id to = GUID
Set Xi conversation -
How to set property for Cluster Environment for JMS Adapter
Hi All,
I am moving from DEV to Prod environment which is cluster.
Can you Please explain me what property I need to Set for Cluster Environment for JMS Adapter, so that I could avoid race condition for Dequeue/enqueue.
I am using soa suite 10.1..3.4
Thanks in Advance.
Edited by: vikky123 on Jul 12, 2010 7:03 AMput something like this
<activationAgents>
<activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="PARNERLINKNAME">
<property name="clusterGroupId">SOMEUNIQUEVALUE</property>
<property name="portType">PARTNERLINK_PORTTYPE</property>
</activationAgent>
</activationAgents> -
Hi All,
I set up the JMS connection with JBoss, and send the message asynchrously to JBoss successfully.
But right now, Jboss need to use the incoming message ID as correlation ID in Jboss.
How could i set the message id from payload (not PI message ID, not PI Conversation ID) for JMS receiver adapter?
thanks a lot
already check the following links:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5059f110-0d01-0010-7c8b-fdc983be70c0
Re: jms message id in jms sender channel
JMS Correlation ID
XI JMS mq series correlation id
cannot find any about set JMS Message ID from payload
Edited by: Lawrence on Dec 24, 2009 2:21 PMHi Lawrence,
I am not sure how jboss will store message,But i had done similar requirement but my system is MQ,Standard JMS adapter not supports to chnage the value or set mesage id in MQ,we can change the PI Message ID Value but not JBOSS/MQ Message ID.
Writng module is the one option.
Regards,
Raj -
Configuration for JMS Adapter Sensor action and JMS Queue sensor action..!!
Hi,
Id like my BPEL process to send an XML message to JMS on Websphere,I was able to do this through a JMS adapter.But I would more like to add sensors into my process which would really do the same thing - send an XML message to JMS Q.
Now I understand that there are two ways to do this,JMS Queue and JMS Adapter - thorugh bpel sensor action.
I am able to use JMS Queue and it works fine , but adds its own xml tags to the message,Is there any way I could send only my xml payload as a message to the queue??
Also could any1 tell me what is the configuration for JMS Adapter sensor action?
Any suggestions how do I go about it??Hey Anirudh,
Thanx for the response :-)
All these hold good when I have an AQ adaptor right,But the thing is I want to send a message to a 'JMS' queue with out actually using an adapter configuration wizard and everythng..So I resolved to JMS queue Sensor action..Heres the xml snippet from the sensorAction.xml files which is generated..
<actions targetNamespace="http://xmlns.oracle.com/Test_JMS_Logging" xmlns="http://xmlns.oracle.com/bpel/sensor" xmlns:tns="http://xmlns.oracle.com/Test_JMS_Logging" xmlns:pc="http://xmlns.oracle.com/bpel/sensor">
<action name="JMS_LogEntry" publishName="" publishType="JMSQueue" enabled="true" filter="" publishTarget="jms/L_Queue">
<property name="JMSConnectionFactory">jms/L_QueueCF</property>
<sensorName>ActivitySensor_JMS</sensorName>
</action>
</actions>
This works grt and adds messages to the queue..But adds its own header info according to the sensor.xsd loacted at the Oracle_home\bpel\system\xmllib\ folder.
Right now the XML message added to the Queue is:-
<actionData xmlns="http://xmlns.oracle.com/bpel/sensor">
<header>
<sensor sensorName="ActivitySensor_JMS" classname="oracle.tip.pc.services.reports.dca.agents.BpelActivitySensorAgent" kind="activity" target="AddLEntr
y" xmlns:pc="http://xmlns.oracle.com/bpel/sensor" xmlns:ns2="http://www.ulrhome.com/2008/10/L_Entry" xmlns:tns="http://xmlns.oracle.com/Test_JMS">
<activityConfig evalTime="completion">
<variable outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema" target="$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName"/>
</activityConfig>
</sensor>
<instanceId>950016</instanceId>
<processName>Test_JMS</processName>
<processRevision>v2009_04_15__40833</processRevision>
<domain>default</domain>
<timestamp>2009-04-15T11:21:23.596-04:00</timestamp>
<midTierInstance>app01.ulrhome.com:9700</midTierInstance>
</header>
<payload>
<activityData>
<activityType>scope</activityType>
<evalPoint>completion</evalPoint>
<durationInSeconds>0.011</durationInSeconds>
<duration>PT0.011S</duration>
</activityData>
<variableData>
<dataType>12</dataType>
<data>
<ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
</data>
<queryName/>
<target>$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName</target>
<updaterName>AddL_Entry</updaterName>
<updaterType>scope</updaterType>
</variableData>
</payload>
</actionData>
My requirement is that I need to add a sensor to the BPEL process which posts 'Only my payload message to the JMS queue'..
What I would want the message in the Queue to be is : -
<data>
<ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
</data>
Also while creating a Sensor action I get another option as JMS Adaptor,I am not sure of what value to type in this wizard..Heres what I keyed in..M sure this is not right..Cos it dosnt work :-)
<action name="SensorAction_JMS" publishName="" publishType="JMSAdapter" enabled="true" filter="" publishTarget="jms/LoggingQueue">
<property name="JMSConnectionName">Log</property>
</action>
</actions>
Could any 1 tel me what values are the right values..And does JMS Adapter mean that I have to create a JMS Apator in the project and give that connection name as a Value..
I am not finding sufficiant Documentation for 'JMS Adapter' so M clueless and right now any help will be appriciated :-)
Regards,
Akshatha. -
Concurrency for JMS Sender Adapter - Async/Sync Bridge
Hi,
We have implemented a number of Async/Sync bridges using JMS Adapters, and are encountering problems scaling the solution.
Async-Sync Bridge Scenario:
JMS Sender Adapter -> Integration Server -> Sync ABAP Proxy (CRM) -> JMS Receiver Adapter
The bridge is using the Adapter Framework modules: RequestResponseBean & ResponseOnewayBean within the Sender Adapter.
The problem is that concurrency of processing seems to be driven from the number of Java Server Cluster Nodes on the Adapter Engine. The JMS sender adapters do not appear to read from the external messaging system (MQ) in a concurrent fashion. They appear to process in a sequential manner per Adapter:
1. Read from request Message Queue (MQ)
2. Send request for processing (IS)
3. Wait response message
4. Receive response message
5. Write response message to Message Queue (MQ)
6. Read from request Message Queue (MQ)
7. Send request for processing (IS)
8. Wait response message
9....
We need to be able to introduce some means of scaling the solution so that mesages can be read from the MQ request message queue in a concurrent manner. Hopefully we can do this without adding more javer server nodes to the Adapter Engine.
We were looking intot he possibility of tuning AS Java properties that control the number of connections to the Messaging System of the Adapter Engine but this has not provided a solution.
Any information on this topic would be much appreciated.
regards
MurrayAs far as I know, the only wasy for JMS adapter to do concurrent reads from a queue is by having multiple server nodes. This is document in note 856346, point 6.2
Thanks
KK -
Support for JMS Topic in SAP PI 7.11
Hi,
As per SAP Note 856346, JMS Topics are not supported in SAP PI (Question 2.1). However the Note is valid for SAP PI 7.1 and there is no mention for SAP PI 7.11
So can anybody please confirm if SAP PI7.11 supports JMS Topics?
Thanks,
Pankaj.Hi,
There seems to be a lot of confusion between what is documented and what is available in actual. I did a search in help.sap.com for JMS Topic and got some information under PI7.11
http://help.sap.com/saphelp_nwpi711/helpdata/en/46/31558a9f1214dfe10000000a155369/frameset.htm
I hope that someone from SAP confirms the actual working. I dont want to raise an OSS for this
Thanks,
Pankaj. -
Is there a Size Limit for JMS Adapter ?
Hi ,
Is there any size limit for JMS Adapter ??
Regards,
SamI'm not sure about the adapter, but documentation for weblogic available at http://download.oracle.com/docs/cd/E13222_01/wls/docs92/perform/jmstuning.html#wp1150012
Manoj -
Failed to generate Alert for JMS Sender adapter
Hi Folks,
My scenario is JMS to IDOC..
I have configured the Alert rules and the alerts are working fine for the Integration engine errors.. and apart from the alert rule there is one more alert rule configured for capturing the alerts of the adapter engine..
When i provide the queue name as invalid one .. i am able to receive the alerts for the same via alert rule of adapter engine..
When I force to make the channel to error with the invalid headers of RFH2 (with correct queuename) the channel status is showing error ..but interestingly no alert for the same...
Now My question here is how to test the generation of the alerts by forcing the JMS sender channel to error. ?
I already checked the report SXMSALERT_LOGREADER for verification but no luck..
Can some one throw light on this?
Forgot to mention i am using IBM MQ ...
Regards
Rajesh
Edited by: Rajesh on Jul 8, 2010 10:08 AMHi Raj,
Thanks for your reply...I am fetching the RFH headers using UDF via Dynamic config only..
Apart from the configurations errors mentioned for alerts(as i am success in this case)...I am testing if there any data related errors like wrong RFH Headers for JMS sender adapter though the channels showing error status in this case ...but its not throwing the alerts...
I want to know whether the alert will be triggered for this or not...if not why ..as it should..
if yes i am unable to get.. what troubleshooting can be done for this...
if you have any other cases (aprt from config issues)for alert trigger...and also apart from RFH headers case..can u pls share..so that i will try the same..
MY only question here is why the adapter not trigering the alerts when wrong RFH Headers are sent along the message..but showing the channel status as red..(is it a bug ?)
Thanks in Advance
Rajesh -
Creating data server for JMS Queues in ODI
hi,
I am trying to create data server for JMS Queues in ODI.
I am getting following error:
java.sql.SQLException: Cannot load connection class because of underlying exception: 'javax.jms.JMSException: Cannot find the Connection Factory (jms/QueueConnectionFactory) in JNDI'.
To implement this, I am giving following parameters:
JNDI driver : com.evermind.server.rmi.RMIInitialContextFactory
JNDI url : ormi://localhost/default
JNDI resource : jms/QueueConnectionFactory
Please help.
Thanks,
MonikaHi,
according to docs
http://docs.oracle.com/cd/E23943_01/integrate.1111/e12644/hypersonic_sql.htm#ODIKM590
i see
JDBC Driver: org.hsqldb.jdbcDriver
JDBC URL: jdbc:hsqldb:hsql://<host>:<port>
could you modify
JDBC Driver : org.hsqldb.jdbc.JDBCDriver
JDBC Url : jdbc:hsqldb:hsql://localhost
according to docs?
Thanks -
Hi All
I am working on Alert Configuration for Communication channels . I am getting alerts for communication channel but not alerts for Receiver JMS adapter
Created alert catergory & classification
Create alert rule in RWB
Personlized for sending mail .
I tried with new rule for only jms adapter .
I don't want use UDF trigger alerts .
Please help me on this , thank in advance for your helpHi,
When you getting alerts for other channel means you have to get it for JMS too alert,JMS adapter part of JAVA STACK ,you can maintain alert rule as AE engine failure errors.
still if it is not working out then
When are you triggering ALERT??when JMS channel fails to connect MQ??when you expecting ALERT from JMS channel,pls check check the channel status in Communicataion channel monitroing.
1)Create one more alert rule to specific to your JMS interface,then test it .
Regards,
Raj -
How to maintain EOIO for JMS to multiple webservices scenario
Hi,
I have a requirement that
how to maintain EOIO for JMS to multiple webservices scenario.
JMS queue has multiple messages, each message has to be sent to either of 2 receivers.
How to maintain EOIO in case, when there are 2 receivers.
Regards
SekharHi,
since messages are split between 2 webservices receivers, each would have its own SOAP adapter.
So if order of messages in the JMS queues is M1, M2, M3 and M4 . There is a field based on which split happens.
Say, if M1 and M3 have to go Webservice1 (will have its own mapping)
and M2 and M4 have to go Webservice2. (will have its own mapping)
we'll have two receivers in the receiver determination and hence two Interface determinations.
The result should be
M1 delivered to Webservice1
M2 delivered to Webservice2
M3 delivered to Webservice1
M4 delivered to Webservice2
How will we maintain EOIO in this case?
Regards,
Balaji.M
Maybe you are looking for
-
My wife and I are getting a new IPad on Friday. I have an Apple ID and she does not. Can I set up her a Apple ID and then we use our own ID's on the IPad when we use it at seperate times?
-
VS2013 update 4, Firefox browser34.05, Chrome browser 39.0, IE11, Win8.1, .net framework 4.5 MS Cross browser testing setup for Selenium_dotnet 2.4, Chrome driver 2.10, Components copied to VSTT folder, Running the following: BrowserWindow.CurrentBro
-
Remove All Website Data Not Working
Hello All, I am currently using a MacBook Pro, running OS X 10.8.5 with Safari ver 6.2.2. Recently I have noticed that when I go to preferences and click on Remove All Website Data it does not clean out the sites I have visited. Is this a common prob
-
HT3669 Mac os x 10.6.8 with Canon MP160
I just bought a mac from a friend and i hooked up my canon MP160 printer/scanner and it will print but not scan properly. I have os x 10.6.8. Any help would be appreciated. I tried everything... I even went to Canon's website and downloaded a coupl
-
Inconsistent decimals in crystal report(max 5decimals)
Hi, I have a BEx report which contains some selections and formulas that is used also in crystal reports. BEx analyzer can show up to 9 decimals, however in crystal the numbers can not go further then 5 decimals which is resulted faulty. Exm: 13,2554