Dequeue jms messages using JMS adapter
Hi,
I have created jms server, modules, queue from console-messaging-jms modules.
I am trying to create a soa composite to consume message from this queue.
In JMS adapter wizard - step 7 - i have selected the destination queue. In this step, what should be the jndi name?
do i need to update weblogic-ra.xml file?
Can someone please point me to the steps/doc to create jms adapter to consume message from Oracle Weblogic JMS? (basically configure deployment descriptor)
Thanks
Ganesh
By passing username/password in the outbound connection pool, i was able to connect to the secured weblogic jms..
This was my config for eis/wls/Queue connection pool..
AcknowledgeMode java.lang.String AUTO_ACKNOWLEDGE
ConnectionFactoryLocation java.lang.String weblogic.jms.XAConnectionFactory
FactoryProperties java.lang.String
IsTopic java.lang.Boolean false
IsTransacted java.lang.Boolean false
Password java.lang.String weblogic123
Username java.lang.String weblogic
After making the change ( remember to hit enter after modifying password and username fields, else change wont persist) , i saved it with a new deployment plan and updated the deployment with the new plan. Then redeployed the composite containing the jms adapter and I am able to see a consumer created for the queue.
Similar Messages
-
Error in Oubound message using Seeburger Adapter
Hi,
I'm getting this error on the Adapter engine when trying to generate an outbound EDI message with Seeburger adapter:
2007-01-24 13:33:29 Error Unable to forward message to JCA adapter. Reason:
Fatal exception: com.seeburger.xi.connector.queue.QueueEntryRejectedException:
Entry rejected due to error in resource management: null, Entry rejected due to
error in resource management: null
2007-01-24 13:33:29 Error MP: exception caught with cause
javax.resource.ResourceException: Fatal exception:
com.seeburger.xi.connector.queue.QueueEntryRejectedException: Entry rejected due
to error in resource management: null, Entry rejected due to error in resource
management: null
2007-01-24 13:33:29 Error Exception caught by adapter framework: Fatal
exception: com.seeburger.xi.connector.queue.QueueEntryRejectedException: Entry
rejected due to error in resource management: null, Entry rejected due to error
in resource management: null
2007-01-24 13:33:29 Error Delivery of the message to the application using
connection File_http://sap.com/xi/XI/System failed, due to:
com.sap.aii.af.ra.ms.api.RecoverableException: Fatal exception:
com.seeburger.xi.connector.queue.QueueEntryRejectedException: Entry rejected due
to error in resource management: null, Entry rejected due to error in resource
management: null: javax.resource.ResourceException: Fatal exception:
com.seeburger.xi.connector.queue.QueueEntryRejectedException: Entry rejected due
to error in resource management: null, Entry rejected due to error in resource
management: null.
Any ideas?
Rgds,
YvesYves,
I think there is some problem in invoking the seeburger adapter. Have you installed the adapter? Also after installing you have to import the metadata. Check this document for further help:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6dc02f5d-0601-0010-cd9d-f4ff9a7e8c33
---Satish -
Scheduling of message using HTTP Adapter.
Hi All,
The scenario is SAP ECC to SAP PI to SAP MII, and we are using HTTP adapter on the receiver side.
The requirement is that, the messages should be sent to MII in the order in which ECC sends it to PI.
Can anyone please help me on how this can be achieved.
Thanks and Regards,
NehaSinghHi Neha,
If it is IDOC to HTTP scenario and you use EOIO also you will face a big problem.
It will not work. I have faced the same problem.
Suppose at a same time ECC genaretes 100 IDOC then then in intregration engine it may not reach at same sequecnce as IDOC no.
You can go with IDOC packageing in this case in ECC.
In ECC send the IDOCs as packages.
Also in PI create one Sender IDOC channel with package size.
then before your actual mappinng create a simple mapping program to sort the IDOC based on IDOC number. Then do the actual mapping.
Dont forget to create an Unbounded IDOC structure as source side in Mapping,
Edited by: Debashish on Jul 1, 2011 2:29 PM -
Dequeuing the message using Non Sys user
Hi all,
I've implemented Advanced Queuing in one Schema(Say "temp") which has AQ privileges. My requirement is Asynchronous Communication between two programs.
In One program i've DBMS_AQ.ENQUEUE to put the message onto the queue. The user "temp" enqueued the message.
I've a anonymous PL/SQL callback procedure registered to dequeue the message. but while dequeuing the message, the user is "SYS". Immediately after dequeuing the message, i've a call to the second program which uses some views. In my application we have dba policies applied to these views. So only temp user can access those views where SYS user doesnt have any access to these views.
we already have one solution i.e., giving access to SYS user also but this will result in some other security concerns for the application
Another solution could be dequeuing the message with "temp" user (NON sys user).
So i would like to know whether it is possible to dequeue the message with NON-SYS user ? i've tried searching the dequeue options and message properties but couldn't get anything..
can anyone help me in solving this problem??Hi paul,
Thanks for the response :). I've tried this already but still the dequeue user id "SYS". i'll explain you in detail with the code.
I've create queue table and queue with the following code :
create or replace TYPE temp_msg_type as object (seq_no NUMBER(10),
req_type varchar2(6))
begin
dbms_aqadm.create_queue_table(
queue_table => 'test_queue_tab',
queue_payload_type => 'temp_msg_type',
multiple_consumers => true);
dbms_aqadm.create_queue(
queue_name => 'test_queue',
queue_table => 'test_queue_tab');
dbms_aqadm.start_queue(
queue_name => 'test_queue');
end;
After this an Agent is subscribed to this queue.
begin
dbms_aqadm.add_subscriber(
queue_name => 'test_queue',
subscriber => sys.aq$_agent('recipient', null, null));
end;
Then registered an PL/SQL callback procedure to this queue.
begin
dbms_aq.register(aq$_reg_info_list(
aq$_reg_info('test_queue:RECIPIENT',
DBMS_aq.NAMESPACE_AQ,
'plsql://notifyCB_prd',
HEXTORAW('FF')) ) ,
1);
end;
The follwing procedure will enqueue the message. in the below code before i enqueue it i am inserting the current sessions' user, it got printed as "SCOTT".
create or replace procedure enqueue_msg_prd( O_status_code IN OUT varchar2 )
as
enqueue_options dbms_aq.enqueue_options_t;
message_properties dbms_aq.message_properties_t;
message_handle RAW(16);
message temp_msg_type;
begin
--enqueue_options.visibility := DBMS_AQ.IMMEDIATE;
message := temp_msg_type(112, user);
O_status_code := 'S';
dbms_aq.enqueue(queue_name => 'test_queue',
enqueue_options => enqueue_options,
message_properties => message_properties,
payload => message,
msgid => message_handle);
end;
The following procedure will dequeue the message. this procedure will be automatically triggered when i commit the enqueue transaction since there is anonymous callback procedure registered for this queue. In the below code after i dequeue it i am inserting the sessions' user, it got printed as "SYS".
create or replace
procedure notifyCB_prd( context raw,
reginfo aq$_reg_info,
descr aq$_descriptor,
payload raw,
payloadl number)
as
dequeue_options dbms_aq.dequeue_options_t;
message_properties dbms_aq.message_properties_t;
message_handle raw(16);
message temp_msg_type;
begin
dequeue_options.msgid := descr.msg_id;
dequeue_options.consumer_name := descr.consumer_name;
--execute immediate 'conn session set current_user= scott';
DBMS_AQ.DEQUEUE(
queue_name => descr.queue_name,
dequeue_options => dequeue_options,
message_properties => message_properties,
payload => message,
msgid => message_handle);
insert into temp values(message.seq_no,user);
commit;
end;
Even i queried the aq$test_queue_Tab view. in this view, value in deq_user_id is "SYSS"
is there any way to get the users session as 'SCOTT' ?? -
How to post multiple message using file adapter in XI2.0
We have to post multiple IDOCS.We have scenario as below.
We will have file structure like as shown below.
VKORG,VTWEG,SPART,BSART,PARVW,PARTNER,BSTDK,MATNR,MENGE,VSART,BSTZD,POLINE,BSARK
BE10;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
BE10;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
BE30;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
For this we want that 2
messages should be created.In first message there will be first 2 records
with VKORG BE10 and in second message there will be last record with VKORG BE30.
We can do it through FILE2XMBWITHSTRUCTURECONVERSION and using some options.
I am sending the configuration that I have done for my adapter.
classname=com.sap.aii.messaging.adapter.ModuleFile2XMB
mode=FILE2XMBWITHSTRUCTURECONVERSION
#mode=FILE2XMB
XMB.TargetURL=http://20.60.53.36:8000/sap/xi/engine?type=entry
XMB.ReceiverBusinessSystem=sapdev210
#XMB.ContentKind=B
XMB.ContentKind=T
#XMB.ContentType=application/xml
XMB.ContentType=text/xml
#XMB.ContentType=text/plain
XMB.QualityOfService=EO
##xml conversion properties if mode FILE2XMBWITHROWCONVERSION specified (example, see docu)
xml.recordsetStructure=IDOC,*
xml.recordsetName=SALESDATA
xml.recordsetsPerMessage=1
xml.documentName=SALESDATA
#xml.fieldFixedLengths=
xml.IDOC.processFieldNames=fromConfiguration
xml.IDOC.fieldNames=VKORG,VTWEG,SPART,BSART,PARVW,PARTNER,BSTDK,MATNR,MENGE,VSART,BSTZD,POLINE,BSARK
xml.keyFieldName=VKORG
xml.keyFieldType=CaseSensitiveString
xml.IDOC.keyFieldValue=BE10.
xml.IDOC.fieldSeparator= ;
What I have tried is hardcoding 2 in xml.recordsetStructure=IDOC,2.It works fine
Since I already knew this.
Butin real scenario we wont be knowing this that is why I have given * in configuration , and
given
xml.keyFieldName=VKORG
xml.keyFieldType=CaseSensitiveString
xml.IDOC.keyFieldValue=BE10.
With this it should identify on key field and its value and put first 2 records in one message
and last record in second message.
It is not giving any error when we start adapter but no XML message is created.Can u plz help me
for the above problem.
My datatype in repository is like
SALESDATA
IDOC
VKORG
VTWEG
and allother remaining fields.
Is this scenario possible in XI 2.0.If yes then will it be done through above approach or something else.
Thanx.
Rekha.Hi,
I think you can not handle this problem with keyFieldName/keyFieldValue.
In my opinion with keyFieldName/keyFieldValue you can create different substructures of the same XML, but you can not seperate messages with the same substructure.
But I don't know how to handle your problem ;-(
Another point is that I see a dot after xml.IDOC.keyFieldValue=BE10.
My be this is a problem too.
Christoph -
Req/Reply message using HTTP adapter
I am using a HTTP Adapter to receive a request message from a client application and sending a response back to the client. The response is being sent by the adapter is XML with a HTML wrapper. However, the client application can't accept HTML; we have to send pure XML.
Is there any easy way to change this in adapter.ini? Can we do something using ReceiverCustomizer? or we have to do something in the TransportServlet?
-----------------------------------------Current Response message-------------------------
<html><head><title>TransportServlet </title></head>
<body><h1>TransportServlet</h1>
<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<ns1:response userId=""
xmlns:ns1="http://quikpayasp.com/namespace/activity">
<account type="StanfordCardPlan">
<currentBalance></currentBalance>
<accountActivityDate></accountActivityDate>
</account>
</ns1:response>
</body></html>
--------------------Expected----------------------------------------------
<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<ns1:response userId=""
xmlns:ns1="http://quikpayasp.com/namespace/activity">
<account type="StanfordCardPlan">
<currentBalance></currentBalance>
<accountActivityDate></accountActivityDate>
</account>
</ns1:response>
Appreciate your response.Try using D3L mode.
babu -
Exception while posting a message using SOAP adapter
Hi
We are getting the following message while posting a SOAP request through SOAP adapter through Http Client. The error message is
<SAP:Error>
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code>MESSAGE.GENERAL</SAP:Code>
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML</SAP:AdditionalText>
</SAP:Error>
Please help in this regard.
Regards
RameshDear Gopal,
I am trying from HTTP->WEB SERvice (R/3 system)
I have created a webservice from RFC.
Receiver Adapter type : SOAP
USer authentification provided
URL provided. i picked from wsdl file
i am getting this error
com.sap.aii.af.ra.ms.api.DeliveryException : invalid content text/html.
I hope u trouble shooted this kind of error.
can u provide me some clues.
regards
chandra
Message was edited by:
chandra shekar dasari -
How To split large message using File Adapter
Hello everyone,
Here is my scenario FTP > XI > BI.
I got 2 questions:
(1) I am getting large message around 70 MB file.
How we can split the message into multiple files 10 MB each before processing the file into XI?
(2) Is there is any way we can find out size of file which is on FTP without contacting FTP admin?
through XI before processing the file?
Thanks
Vickhi vick,
check the blog
Zip or Unzip your Payload with the new PayloadZipBean module of the XI Adapter Framework
Working with the PayloadZipBean module of the XI Adapter Framework
SAP XI acting as a (huge) file mover
The specified item was not found.
Managing bulky flat messages with SAP XI (tunneling once again) - UPDATED
The specified item was not found.
regards
kummari -
Regarding hierarchy of message using file adapter
Hi all.
I have following source-structure
<name of MT>
<Header>
<h1></h1>
<Subheader>
<sh1></sh1>
<LineItem>
<l1></l1>
<LineItem>
</Subheader>
</Header>
</name of MT>
Input is coming like a flat file.
can file adapter can read the above structure? may be it doesn't because, <l1> item is in 4th level of message. so adapter can't read more than 3rd levels.. is it right? Please give u r inputs.
ThanksHi,
To my Knowledge
>>so adapter can't read more than 3rd levels.. is it right? Please give u r inputs
It is not like that.
Regards
Agasthuri Doss -
Multiple message through FIle Adapter using XI 2.0
I have scenario to create multiple message using File adapter .My file structure will be like
EMPID NAME SKILLS
001 A ABAP
001 A XI
002 B JAVA
Now I want to post first 2 records in one message and last record in other message.
Can we do it in XI 2.0.Any help appreciatedHi Suraj.
Thank you very mutch for your reply.
Excuse me...my mapping is done for message type and idoc.
My problem is that when the interface start, on the sxmb_moni I see an error like this:
Creating Java mapping com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- Using MappingResolver with context URL //srvsapdev/sapmnt/CX1/SYS/global/xi/mapping/gestione_magazzini/7fa9c9e15a7811dab710f3e3ac10826e/ --- Load of com/sap/xi/tf/_MM_XmlOrderToIdocMapping_.class from //srvsapdev/sapmnt/CX1/SYS/global/xi/mapping/gestione_magazzini/7fa9c9e15a7811dab710f3e3ac10826e failed. --- Class not found: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- java.lang.ClassNotFoundException at RUMappingJava.load(): Could not load class: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ Class not found: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- com.sap.aii.ibrun.server.map.MappingRuntimeException: at com.sap.aii.ibrun.server.map.MappingRuntimeException.code_STYLESHEET_OR_CLASS_NOT_FOUND
..where 'gestione_magazzini' is my namespace and 'MM_XmlOrderToIdocMapping' is my message mapping.
Can you help me to undestand the problem?
Thanks,
Gianluca -
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); -
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) -
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) -
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>
Maybe you are looking for
-
One feature I would like to see on the iPhone is the ability to control its behavior based on external factors. For example, - At night I want my phone to shut up. No email or sms notifications, and to only ring if call is from someone I care about.
-
This happened after a failed overclock. I got the initial BSOD for a failed overclock, reset the CMOS, and then rebooted and Windows started to load then went to a black screen. After waiting for about 10 minutes I decided to force a restart. That's
-
Dynamically show/hide pages in a workset for special users at runtime
Hi all, I want to create a workset that contains pages for different countries. The portal users should only be able to see the countries where they do business. I also would like masterdata from R/3 to drive the display of content on the portal. - I
-
Creation of view with clob column in select and group by clause.
Hi, We are trying to migrate a view from sql server2005 to oracle 10g. It has clob column which is used in group by clause. How can the same be achived in oracle 10g. Below is the sql statament used in creating view aling with its datatypes. CREATE O
-
LabVIEW Memory full while fetching data from database
Hi, In my program I need to sync some data from client PC as per the selected time frame. But while fecthing the data from the clinet database, my application is hanging and when I run it with code I get the 'LabVIEW memory full' error message. Kindl