Dynamic Queues using JMS Adapter - Possible?
Can anyone advise if its possible to dynamically set the JMS Queue DestinationName at runtime when using the JMS Adapter?
My guess is not, but I thought I'd ask anyway...
Dennis
Hi Dennis,
Did u get a solution for this.
Even i have a same scenario where i have to select the destination queue dynamically.
Any help in this regards...
Regards
Ashwini
Similar Messages
-
Push different type of messages to JMS Queue using JMS Adapter
Platform: Oracle SOA 11g. JMS Adapter.
I got to push different types of messages as string to same queue. JMS Adapter requires schema to push a message to a queue. Since messages are of different types, how can I push them into queue. I tried to use singleString schema. Result is that actual message gets wrapped into <singleString> root element which is not the required result.
Any hints or links shall be appreciated.Thanks fo ryour reply and help. I appreciate that.
Wrapping of original message in <singleString> element is done by JMS Adapter as the very last activity/setting. I am not composing/transforming message into final shape with singleString through transformation.
Once message is with JMS adapted on one end, it is in Queue on the other end. No control.
Since consuming end is not in my control and requires the actual message in Text format, I need to have the message target queue in Text format.
If I select the Opaque schema, following error message is thrown.
<bpelFault><faultType>0</faultType><mismatchedAssignmentFailure xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"><part name="summary"><summary>Mismatch Assign. cannot set a nonmessage value to a message-based variable. An attempt to assign a nonmessage value to a message-based variable failed. Verify the BPEL source for invalid assign activities.< /summary></part></mismatchedAssignmentFailure></bpelFault> -
How to send message to a queue using JMS adapter
Hi,
I need to send messages to the default queue(demoQueue) available in the server using a JMS adapter in a BPEL process.
I tried doing the same by using an invoke activity that invokes the JMS adapter service to send the message to the queue. I deployed this process in the server and gave an input to send it to the queue. The prcoess executed without any errors in the BPEL console.
I am also using Hermes v1.0 to monitor the queue but it says that it dint receive any messages in the queue to read.
I am sorry that i have restrictions from the client that i can't post the code here. Please let me know if anyone has got any solution or if you know any other way of doing the same.
Thank you
Message was edited by: prince
the_princeYou can use the following procedure :
DBMS_AQ.ENQUEUE (
queue_name IN VARCHAR2,
enqueue_options IN enqueue_options_t,
message_properties IN message_properties_t,
payload IN "<ADT_1>",
msgid OUT RAW); -
How to read Java Object message from JMS Queue using JMS Adapter .
Dear All,
In my scenario i have to read a java object message from JMS Queue . I tried by using the JMS Adaper ,but i am not getting any Payload . Can any one tell me is there any special settings for JMS Adapter to read the Java Object message .
I am able to read the Message successfully thru JMS Adapter but in SXMB_MONI it is not showing any payload .
I also went in Message monitoring but i am getting this type of message in Sender JMS Adapter in Audit Log.
JMS Message ID XXXXX Message Type Null unknown.Payload can not be read and will be empty.
JMS Message ID XXXXX Payload Empty can not read.
Please Help.
LateefHi,
As far as i know, JMS Object Messages is not supported by XI JMS adapter.
you need to have the JMS provider to transform the message to bytes messages.
(Refer to SAP note 856346) -
How to create and use dynamic queue in JMS
Plz tell me how to create and use a dynamic queue in jms and can reciever file lookup it as it lookup any server configurred queue(written in the server).
Hi,
We can use Azure File services to do this, for more information, please have a look at this article:
http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/introducing-microsoft-azure-file-service.aspx. The Azure File service exposes file shares using the standard SMB 2.1 protocol. Applications running in Azure can now easily share files between
VMs using standard and familiar file system APIs like ReadFile and WriteFile.
Best Regards,
Jambor
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
How to get the incoming file name using JMS adapter and SOAP adapter
Hi Everybody,
In one of my interface i need to get the file name of incoming flat file using JMS adapter at sender side. and then i am using xslt to convert it to IDOC and then posting to SAP IDOC.
my incoming filname are in this form price<DateTimestamp>.txt. when i do the tranformation this incoming file name should be part of one element in the IDOC which i am posting.
EX:
<IDOC
<REF>price<DateTimestamp>.txt</REF>
</IDOC>
Hope it is clear to everybody. I need your suggestion how i can capture this incoming file name and send it as part of IDOC.
Thanks
rajIf they are passing it in message id or correlation id,
you can access it using
<xsl:variable name="dynamic-conf"
select="map:get($inputparam, 'DynamicConfiguration')" />
<xsl:variable name="dynamic-key"
select="key:create('http://sap.com/xi/XI/System/JMS', 'DCJMSMessageID/ DCJMSCorrelationID')" />
<xsl:variable name="dynamic-value"
select="dyn:get($dynamic-conf, $dynamic-key)" />
Check this:
http://help.sap.com/saphelp_nw70/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
Thanks,
Beena. -
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? -
How to Set JMS property and Read JMS property in BPEL using JMS adapter
Does any one know how to set or read more than one JMS property in BPEL using JMS adapter. My queue server is Oracle JMS server.
Any help and sample is well appreciatedHi Van
I have noted that only the attribute "type" is missing. It seems that when you create a "string" property, the attribute "type" is droped from the XML. If you use another type (as "integer" or "double") it stays there.
If you try to read your properties, except for the "type" attribute, you should be successful, as I am. If you need, please tell me your email, I can send you my code.
Source Code:
in ASSIGN activity (process which SENDS the JMS message):
<assign name="TESTES">
<copy>
<from expression="'string'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@type"/>
</copy>
<copy>
<from expression="'name'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@name"/>
</copy>
<copy>
<from expression="'value1'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@value"/>
</copy>
<bpelx:append>
<bpelx:from>
<Property name="" type="" value=""
xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/"/>
</bpelx:from>
<bpelx:to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties"/>
</bpelx:append>
<copy>
<from expression="'string'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@type"/>
</copy>
<copy>
<from expression="'name2'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@name"/>
</copy>
<copy>
<from expression="'value2'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@value"/>
</copy>
</assign>
in ASSIGN activity (process which READS the JMS message)
<assign name="Assign_1">
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@name"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@value"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@name"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@value"/>
<to variable="temp"/>
</copy>
</assign>
Note that I do not try to read the "type" attribute, otherwise it will fail.
Here is the JMS Header Message received:
<inboundHeader>
<JMSInboundHeadersAndProperties xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/">
<JMSInboundHeaders>
<JMSCorrelationID>
bpel://localhost/pi_lms-c001e/BpelPiAtualizacaoC001E~1.0/3200025-BpInv0-BpSeq1.6-2
</JMSCorrelationID>
<JMSDeliveryMode>2</JMSDeliveryMode>
<JMSExpiration>0</JMSExpiration>
<JMSMessageID>ID:467DFA1FA1ED459EBF37F51F596C3F12</JMSMessageID>
<JMSPriority>4</JMSPriority>
<JMSRedelivered>false</JMSRedelivered>
<JMSType>com.mercurio.lms.integration.c001eip.c001EIntegrationPoint</JMSType>
<JMSTimestamp>1201552046253</JMSTimestamp>
</JMSInboundHeaders>
- <JMSInboundProperties>
<Property name="JMSXDeliveryCount" type="integer" value="1"/>
<Property name="JMSXRecvTimestamp" type="long" value="1201552046698"/>
<Property name="JMSXUserID" value="lms_dev_int_v1_user"/>
<Property name="JMS_OracleDeliveryMode" value="2"/>
<Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
<Property name="JMS_OracleDelay" type="long" value="0"/>
<Property name="JMSXState" type="integer" value="0"/>
<Property name="IAS_VERSION" value="10.1.3"/>
<Property name="JMS_OracleDeliveryMode" value="2"/>
<Property name="name" value="value1"/> ("type" attribute was droped!!!)
<Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
<Property name="name2" value="value2"/> ("type" attribute was droped!!!)
</JMSInboundProperties>
</JMSInboundHeadersAndProperties>
</inboundHeader>
Regards
Marcelo -
Polling messages based on priority in BPEL using JMS adapter
Hi All,
Is it possible to poll the messages based on the priority in BPEL using JMS adapter?
I could set the priority for the messages but while polling it is picking the messages in FIFO(First in First out) order. But I want the messages to be picked on priority.Any help is appreciated.Do you only want to pick up messeges with a certain priority? So anything larger than say priority 2?
You can try this: Oracle JCA Adapter for JMS - 11g Release 1 (11.1.1.5.0)
Message SelectorThis field is also optional. It filters messages based on header and property information. The message selector rule is a Boolean expression. If the expression is true, then the message is consumed. If the expression is false, then the message is rejected.For example, you can enter logic, such as:
JMSPriority > 3. Based on this, messages with a priority greater than 3 are consumed; all other messages are rejected.
JMSType = 'car' AND color = 'blue' AND weight > 2500
Country in ('UK', 'US', 'France') -
Read Object Message using JMS Adapter
Hi,
My JMS queue receives an object message.I want to read that object message using JMS adapter.Currently the JMS Adapter payload type is given options to read only 'TextMessage','BytesMessage','MapMessage'.How to read ObjectMesage using this adapter?Please help me on this?Hi,
As far as i know, JMS Object Messages is not supported by XI JMS adapter.
you need to have the JMS provider to transform the message to bytes messages.
(Refer to SAP note 856346) -
hi,
I am trying to enqueue the message to Oracle database Queue(i.e. AQADM.QUEUE_MESSAGE) by using JMS Provider Oracle Enterprise Messaging Service (OEMS) using the potion Oracle Advance Queuing .I am Reading the message from xml file using File adapter to enqueue it to database queue. I have configured the JMS Configuration at WebLogic console.
I have created the queue in database by using following Script
CREATE USER aqadm IDENTIFIED BY aqadm;
GRANT my_aq_adm_role TO aqadm;
/* create AQ queue user: */
CREATE USER aquser IDENTIFIED BY aquser;
GRANT my_aq_user_role TO aquser;
CONNECT aqadm/aqadm;
/* create a message type: */
CREATE OR REPLACE
TYPE AQADM.QUEUE_MESSAGE_TYPE AS OBJECT
title VARCHAR2(30),
text VARCHAR2(500)
GRANT EXECUTE ON AQADM.QUEUE_MESSAGE_TYPE TO my_aq_user_role;
GRANT UNLIMITED TABLESPACE TO aqadm;
begin
DBMS_AQADM.CREATE_QUEUE_TABLE(
queue_table => 'aqadm.queue_message_table',
queue_payload_type => 'aqadm.queue_message_type');
END;
begin
DBMS_AQADM.CREATE_QUEUE(
queue_name => 'aqadm.message_queue',
queue_table => 'aqadm.queue_message_table');
END;
/* individual queues are started using the start_queue procedures */
begin
DBMS_AQADM.START_QUEUE(
queue_name => 'aqadm.message_queue');
END;
I am using the following XSD for input message :-
<?xml version= '1.0' encoding= 'UTF-8' ?>
<schema targetNamespace="http://xmlns.oracle.com/xdb/AQADM" xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:AQADM="http://xmlns.oracle.com/xdb/AQADM" elementFormDefault="unqualified" attributeFormDefault="qualified">
<complexType name="QUEUE_MESSAGE_TYPE">
<sequence>
<element name="TITLE" nillable="true" minOccurs="0">
<simpleType>
<restriction base="string">
<maxLength value="30"/>
</restriction>
</simpleType>
</element>
<element name="TEXT" nillable="true" minOccurs="0">
<simpleType>
<restriction base="string">
<maxLength value="500"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
<element name="QUEUE_MESSAGE_TYPE" type="AQADM:QUEUE_MESSAGE_TYPE"/>
</schema>
During AQ queuing by using JMS adapter. i am geting following error message:-
JMS-108: Messages of type TextMessage not allowed with Destinations containing payload of type AQADM.QUEUE_MESSAGE_TYPE.
Please help mehi,
I am trying to enqueue the message to Oracle database Queue(i.e. AQADM.QUEUE_MESSAGE) by using JMS Provider Oracle Enterprise Messaging Service (OEMS) using the potion Oracle Advance Queuing .I am Reading the message from xml file using File adapter to enqueue it to database queue. I have configured the JMS Configuration at WebLogic console.
I have created the queue in database by using following Script
CREATE USER aqadm IDENTIFIED BY aqadm;
GRANT my_aq_adm_role TO aqadm;
/* create AQ queue user: */
CREATE USER aquser IDENTIFIED BY aquser;
GRANT my_aq_user_role TO aquser;
CONNECT aqadm/aqadm;
/* create a message type: */
CREATE OR REPLACE
TYPE AQADM.QUEUE_MESSAGE_TYPE AS OBJECT
title VARCHAR2(30),
text VARCHAR2(500)
GRANT EXECUTE ON AQADM.QUEUE_MESSAGE_TYPE TO my_aq_user_role;
GRANT UNLIMITED TABLESPACE TO aqadm;
begin
DBMS_AQADM.CREATE_QUEUE_TABLE(
queue_table => 'aqadm.queue_message_table',
queue_payload_type => 'aqadm.queue_message_type');
END;
begin
DBMS_AQADM.CREATE_QUEUE(
queue_name => 'aqadm.message_queue',
queue_table => 'aqadm.queue_message_table');
END;
/* individual queues are started using the start_queue procedures */
begin
DBMS_AQADM.START_QUEUE(
queue_name => 'aqadm.message_queue');
END;
I am using the following XSD for input message :-
<?xml version= '1.0' encoding= 'UTF-8' ?>
<schema targetNamespace="http://xmlns.oracle.com/xdb/AQADM" xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:AQADM="http://xmlns.oracle.com/xdb/AQADM" elementFormDefault="unqualified" attributeFormDefault="qualified">
<complexType name="QUEUE_MESSAGE_TYPE">
<sequence>
<element name="TITLE" nillable="true" minOccurs="0">
<simpleType>
<restriction base="string">
<maxLength value="30"/>
</restriction>
</simpleType>
</element>
<element name="TEXT" nillable="true" minOccurs="0">
<simpleType>
<restriction base="string">
<maxLength value="500"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
<element name="QUEUE_MESSAGE_TYPE" type="AQADM:QUEUE_MESSAGE_TYPE"/>
</schema>
During AQ queuing by using JMS adapter. i am geting following error message:-
JMS-108: Messages of type TextMessage not allowed with Destinations containing payload of type AQADM.QUEUE_MESSAGE_TYPE.
Please help me -
Same file name using JMS adapter on sender side.
Hi Friends,
I got a requirement to capture file name using JMS adapter on the sender side.
Can some one help me in resolving this issue.
Regards,
Jeevan.Hi ,
You can use Dynamic Configuration in mapping.
Create a UDF with input as file name and copy/paste this code
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
//conf.removeAll();
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
//String filename= conf.get(key);
conf.put(key, fileName);
key= null;
return fileName;
Thanks. -
How o place Flat file Using JMS Adapter.
Hi Frnds,
I have one scenario ,
Sender side i am having IDOC, i want convet the IDOC into Flat file. But my receiver side i have to use only JMS Adapter,
Flat file i have to place in FTP Server using JMS Adapter.
Can ne share your thoughts..
Regards,
rajRaj,
The below Link will help
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
Surya,
Welcome Back to SDN.
Regards
Agasthuri Doss -
How to Set corrid using JMS adapter in ESB while inserting the data in JMS
Hello all,
Can any one help me in setting the corrid using JMS adapter in ESB.
I haven't been able to find any clues.
We can do this in BPEL but my adapter is in ESB and i have no idea how this can be done in ESB.
Your help is highly appreciated.
Thanks,
Saurav
Edited by: sauravsingla on Oct 7, 2009 10:46 AMhi
you could do this from and xsl transformatuion by use of the .. function
see :
http://biemond.blogspot.com/2008/02/esb-adapter-failover.html
http://kr.forums.oracle.com/forums/thread.jspa?threadID=658502 (comment of AmitSoaDev, he sets correlationid too)
hope this helps, gl -
How to pass a filename to MQHRF2 header in IBM MQ using JMS Adapter in SAP PI
Hi Expers,
Can you please help on ...
how to pass a filename to MQHRF2 header in IBM MQ using JMS Adapter in SAP PI
Thanks,
ChandarHi Chandar,
Could you check the following post Re: Inserting custom header fields inside MQRFH2 (JMS Receiver adapter)?
I hope you find it useful.
Regards!
Maybe you are looking for
-
ITunes will not install on Windows XP machine
I have tried to install iTunes on my Windows XP machine (Home Edition - SP2 loaded)and it keeps bombing out, I have all the symptoms as decribed in the attached Support problem *No error message displays, however the iTunes installation disappears fr
-
hi, When i see job log for print list link, i am getting messgae as Print list size exceeds 2 GB limit in spool system. How to reduce the size of print list.
-
InDesign Cs5 displayed with wrong resolution (doesn't work in 1920x1080)
Hello everybody I've encountered a resolution issue concerning Indesign CS5 (and Illustrator CS5). The problem only concerns my brandnew laptop running under Windows 8.1 (Screen Resolution 1920x1080). On my other, older PC (with the same native scree
-
Display problem when scrolling in Finder OS X Lion.
Hi, Last week i bought a new iMac, i7, AMD Radeon 6970M. Sometimes, when scrolling in the Finder, the text is displayed weird. See screendump. Is anyone known with this issue?
-
Diaplay data of only one UOM in Query
Hello All, Please help me with the below: we have a field with mixed UOM i.e. Hours and Minutes. How do we, in the query select only one UOM to display the data? Thanx in advance.