JMS and JDBC Adapter in PI7.1
Hi All,
Kindly tell me about the blogs for JMS and JDBC adapter.
Please tell me about the Message Types in JMS adapter.
Thanks in advance.
Hi Shwetambari,
Thanks for the reply.
We need to mention the Adapter Modules while configuring the communiucation channels in JMS
e.g. Adapter/ConvertJMSMessageToBinary,Adapter/ConvertBinaryToXMBMessage etc.
So please tell me whether we need to write the cide for the same in JAVA or it is already there ?If it is there then whre can we get it?Do we need to decompile the archeve ?If so, then how to do it?
Can you give me the Adaqpter Modules for which the code is already there?
The JMS adapter (Java Message Service) enables you to connect messaging systems to the Integration Engine or the PCK.
What are the different types of Messaging Systems?Or what is meant by the Messaging System in JMS?
What are the different types of Messages used?
Thanks in advance.
Edited by: Shweta Kullkarni on Sep 4, 2009 5:22 AM
Similar Messages
-
Sapdb (maxdb) and jdbc adapter problem
Hi,
i have installed this jdbc file:
http://sapdb.org/7.4/sap_db_jdbc.htm
like in this how-to:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-how-to-guides/how to install and configure external drivers for jdbc and jms adapters.pdf
then i set up an jdbc to file szenario to test the adapter.
Driver is: com.sap.dbtech.jdbc.DriverSapDB
connection is: jdbc:sapdb://sapdb-host/XI_DATA
with sapdb-host is the db server and XI_DATA ist the database
user and pw is dba
sql statement is: SELECT * FROM "AAA_XI_DATA" WHERE "number" = 50
with AAA_XI_DATA is the table with test data.
the statment works in the sapdb studio. (No ; in sapdb and the XI)
but when i have a look at the runtime monitor at the af
messages there is no message genereated. where can i
check, if the jdbc driver is working and where do i find
error messages?
Regards
J.
Message was edited by: Jörg PieperYou can check if there is some kind of error with the JDBC Adapter in the Runtime Workbench. Inside the RWB, open "Component Monitoring", "tree view", "Adapter Monitoring", and in the adapter listing you'll find the "JDBC Adapter". It should have a green light. If not, the error will be displayed.
-
Need information about Mail and JDBC Adapter
Hi Guys,
I am just started learning XI. Can any you provide any document how to use Mail and JDBC adapters in step-by-step way.
Thanks & Regards
Surendra Mhi,
Check these links
Mail Adapter
http://help.sap.com/saphelp_nw70/helpdata/en/ad/bf93409c663228e10000000a1550b0/frameset.htm
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9e6c7911-0d01-0010-1aa3-8e1bb1551f05
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6d967fbc-0a01-0010-4fb4-91c6d38c5816
JDBC Adapter
http://help.sap.com/saphelp_nw70/helpdata/en/22/b4d13b633f7748b4d34f3191529946/frameset.htm
Receiving Mail attachments using additional files of file adapter
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1685 [original link is broken] [original link is broken] [original link is broken]
FILE to JDBC Adapter using SAP XI 3.0
/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
Tips and Tutorial for Sender JDBC Adapter
/people/yining.mao/blog/2006/09/13/tips-and-tutorial-for-sender-jdbc-adapter
Sachin
Message was edited by: -
Stored procedures and JDBC Adapter
Hey guys ,
any blog where i canlook up w.r.t. working with any stored procedure through xi ?
Appreciate ur help.
KrishnaHi Krishna,
Here you go-
/people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures
Also remember that, Sender JDBC Adapter doesnot support Oracle Stored Procedures. Because Sender JDBC Adapter sends resultset to XI. But Oracle stored procedure returns Cursor.
I think, if you are using other database then it may support.
Regards,
Moorthy -
I am using Oracle CEP 10g on WIndows.
I wrote the following code on CEP:
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:scott/[email protected]:1521/orcl");
Connection conn = ods.getConnection();
// Check for the existence of a previous customerID
String selectStmt = "SELECT * from STEPS " +
"WHERE (streamID='" +
this.customerId +
"') and (assetid='" +
this.eventName +
Statement stmt = conn.createStatement();
//System.out.println("-- calling SELECT");
//System.out.println(selectStmt);
ResultSet rs = stmt.executeQuery(selectStmt);This works great, except it is exceedingling slow. I am sending about 20,000 messages to this code.
I think the problem is that I open the connection everytime I perform a select (and later an insert statement).
The server instance goes away after the message has been processed, and I can not save the connection.
Would using an adapter in config.xml prevent this openig a new connection every time a message invokes this code ?
If so, I have never done JDBC with an adapter and I dont understand how to use an adapter to use a WHERE clause to select on variables, since in the example I have seen so far, it places "SELECT 1 from DUAL" into the config.xml and does not explain how to get mix have the SELECT statement interact with code variables or better yet how to get your code to get a connection handle.
Could someone please post an exaqmple of how to use an adapter with JDBC, and possibly how to get your code to access a connection handle from the config.xml ?
ThanksHi,
From note : 831162,
<i>Oracle JDBC Driver (classes12.zip / classes12.jar) Deadlocks
Q: I have deployed the Oracle classes12.zip / classes12.jar JDBC driver as per the instructions in the XI Configuration Guide.
Unfortunately, I frequently notice hanging database connections. A thread dump taken according to the instructions in note 710154 shows one or more blocking JDBC Sender/Reciver threads and optionally that the JVM has detected a deadlock.
A: <b>The Oracle classes12.zip / classes12.jar driver is compatible with JDK 1.2 and 1.3 only, but not with JDK 1.4. Upgrade to a current version of the driver (ojdbc14.jar). For details, refer to note 941317.</b>
Make sure that you remove classes12.zip / classes12.jar from aii_af_jmsproviderlib.sda prior to adding the new driver as per the instructions in the answer to question #1 above as you will get a class name collision otherwise (all JARs from aii_af_jmsproviderlib.sda are loaded into the same class loader and the driver class name of both driver versions is the same).
Before deploying the updated driver, ensure that the new version is still compatible with your Oracle database server release. For details, refer to the release notes provided by Oracle.</i>
Regards,
Bhavesh -
I have recently tried using the JMS interface for AQ and I have discovered that the queue connection is a separate JDBC connection even if you create a queue connection using an OracleConnection. Is there a workaround for this? It seems a bit strange to have two connections open to the database and be forced to use an XA session in order to get the commits synchronized. Any ideas ? Below is some sample code I am using:
queueConnection = AQjmsQueueConnectionFactory.createQueueConnection((OracleConnection)connection);
queueConnection.start();
QueueSession queueSession = queueConnection.createQueueSession(true, Session.CLIENT_ACKNOWLEDGE);
AQjmsSession aqs = (AQjmsSession)queueSession;
Queue queue = aqs.getQueue("TEST_SCHEMA", "TEST_QUEUE");Hello,
What version are you using of the jar files? What version of the database are you using?
From what I recall the example in <Note:301434.1> successfully reused an existing JDBC connection.
I would be interested to see a more complete code example if this is not helpful.
Thanks
Peter -
Configuring file and JDBC adapter using MAX DB
Dear Experts..!!!
The problem description is i need to store a text file in Database(MaxDB).....
in receiver communication channel there is database connection in that i want to know what entrys to be done..... and plz do let me know is there any other things to be done to achieve the output.Hi Vinod,
I also do not have idea about MaxDB, but you can refer these links. It will help you out in getting some more information about MaxDB and XI:
<a href="/people/joerg.hoffmeister/blog/2006/12/07/maxdbsdn:///people/joerg.hoffmeister/blog/2006/12/07/maxdbsdn
<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/maxdb">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/maxdb</a>
Go through the home page of MaxDB on SDN, it has plenty of information to help you.
Regards,
Subhasha ranjan -
We get "uFF06uFF03x0;" from sender JDBC adapter
Thank you.
This is naoki kurihara.
We have a problem in sender JDBC adapter.
We use java mapping and sender JDBC adapter in PI7.1 on Windows.(DB is sqlserver)
and we test the interface and we found error.
the reason is to get "&#x0;" from JDBC adapter.
and our java mapping can't parse it. and we got error.
the column is not null.
how we can prevent "&#x0;",
(sorry I cant write "&#" 1byte word, so I wrote 2bytes word)
please give me your help!!
ThanksHi,
Replace the & character with & ; in your java mapping. The same goes for these special characters:
< with < ;
> with > ;
" with " ;
' with &apos ;
Please remove the space between the escape character and the ; in your Java mapping. The spaces are typed here because the equivalent characters are not displaying correctly.
It should be able to handle the # though. Hope this helps
Regards,
Mark -
Hi Friends,
This is Bhavya.Right now I am working with the interface i.e. JMS to JDBC.
Can anybody send me the sample scenario?
Thanks,
Bhavya...Hi Bhavya,
First you need to install the external drivers for JMS and JDBC adpater.
You can check the following link for that.
<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/bf4b1055-0d01-0010-32a3-b3848d77a6b9">How to Install and Configure External Drivers for JDBC JMS</a>
Now your sender service is an JMS server, the details of which you must have..which you will provide it in the channel...it is not that complicated....
For JDBC side..
Check the following blog for the same.
<a href="/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30">FILE to JDBC Adapter using SAP XI</a>
<b>*Reward points if helpful*</b>
Regards,
Sushil -
JDBC, JMS and EJB transactions - possible problem?
Hello,
I am using Oracle 9, Weblogic 8.1 SP 4, MyEclipse and
XDoclet.
In my current project I have the following piece of code
in one of my message driven beans (code cited as pseudocode
without unnecessary details):
* @ejb.bean name="MyMessageProcessor"
* display-name="Display name for a MyMessageProcessor"
* jndi-name="ejb/MyMessageProcessor"
* description="Bean MyMessageProcessor"
* destination-type="javax.jms.Queue"
* transaction-type="Container"
* acknowledge-mode="Auto-acknowledge"
* subscription-durability="Durable"
* generate="false"
* @ejb.transaction type="Required"
public class MyMessageProcessor implements MessageDrivenBean, MessageListener {
public void onMessage(Message msg) {
try {
//obtaining connections to two different databases via JNDi
java.sql.Connection connOne =
((DataSource)ctx.lookup("DataSourceOne")).getConnection();
java.sql.Connection connTwo =
((DataSource)ctx.lookup("DataSourceTwo")).getConnection();
// performing some UPDATEs and INSERTs on connOne and connTwo
// calling some other methods of this bean
//creating the reply JMS message and sending it to another JMS queue
Message msgTwo = this.createReplyMessage(msg)
this.queueSender.send(msgTwo);
//commiting everything
this.queueSession.commit();
} catch (Exception ex) {
try {
if (this.queueSession!=null) this.queueSession.rollback();
} catch (JMSException JMSEx) {};
this.context.setRollbackOnly();
Some days ago (before the final remarks from my client) there used to be only one DataSource configurated on the basis of the
connection pool with non-XA jdbc driver. Everything worked fine
including the transactions (if anything wrong happend not only wasn't the replymessage sent, but also no changes were written
to database and the incomming message was thrown back to the my bean's
queue).
When I deployed the second DataSource I was informed by an error message, that only one non-transactional resource may
participate in a global transaction. When I changed both datasources
to depend on underlying datasources with transatcional (XA) jdbc drivers, everything stopped working. Even if
EJB transaction was theoretically successfully rolledbacked, the changed were written to the database
and the JMS message wasn't resent to the JMS queue.
So here are my questions:
1. How to configure connection pools to work in such situations? What JDBC drivers should I choose?
Are there any global server configurations, which may influence this situation?
2. Which jdbc drivers should I choose so that the container was able to rollback the database transactions
(of course, if necessary)?
3. Are there any JMS Queue settings, which would disable the container to send message back to the
queue in case of setRollbackOnly()? How should be the Queue configurated?
As I am new to the topic and the deadline for the project seems to be too close I would be grateful
for any help.
This message was sent to EJB list and JDBC list.
Sincerely yours,
Marcin ZakidalskiHi,
I found these information extremely useful and helpful.
The seperate transaction for sending messages was, of course, unintentional. Thanks a lot.
Anyway, I still have some problems. I have made some changes to the
code cited in my previous mail. These changes included changing QueueSessions
to non-transactional. I also set the "Honorate global transactions" to true.
I am using XA JDBC driver. After setting "Enable local transactions" to false
(I did it, because I assume that JDBC transactions should be part on the global
EJB transaction) I got the following error:
java.sql.SQLException: SQL operations are not allowed with no global transaction by default for XA drivers. If the XA
driver supports performing SQL operations with no global transaction, explicitly allow it by setting
"SupportsLocalTransaction" JDBC connection pool property to true. In this case, also remember to complete the local
transaction before using the connection again for global transaction, else a XAER_OUTSIDE XAException may result. To
complete a local transaction, you can either set auto commit to true or call Connection.commit() or Connection.rollback().
I have also inspected the calls of methods of bean inside of onMessage() method just to check, whether
the transactions are correctly initialized (using the weblogic.transaction.Transaction class).
My questions are as follows:
1. Any suggestions how to solve it? I have gone through the google answers on that problem and only
thing I managed to realize that JDBC must start its own transaction. Is there any way to prohibit it
from doing that? Can using setAutocommit(true/false) change the situation for better?
2. How to encourage the JDBC driver to be a part of EJB transaction?
3. As I have noticed each of ejb method has its own transactions (transactions have different
Xid). Each method of the bean has "required" transaction attribute. Shouldn't it work in such
way that if already started transaction exists it is used by the called method?
4. The DataSources are obtained in my application via JNDI and in the destination environment I will have slight
impact on the configuration of WebLogic. What is least problematic and most common WebLogic configuration which would
enable JDBC driver to participate in the EJB transaction? Is it the WebLogic configuration problem or can it be
solved programmically?
Currently my module works quite fine when "enable local transactions" for DataSources is set to true, but this way
I am loosing the ability to perform all actions in one transaction.
Any suggestions / hints are more than welcomed. This message was posted to jdbc list and ejb list.
Marcin -
JDBC adapter and message split
Hello, does anybody know how I can make a split of a document created by the JDBC adapter and that should look like
<resultset>
<row>
<column-name1>column-value</ column-name1>
<column-name2>column-value</ column-name2>
<column-name3>column-value</ column-name3>
</row>
<row>
<column-name1>column-value</ column-name1>
<column-name2>column-value</ column-name2>
<column-name3>column-value</ column-name3>
</row>
</resultset>
into several's independent documents of type:
<row>
<column-name1>column-value</ column-name1>
<column-name2>column-value</ column-name2>
<column-name3>column-value</ column-name3>
</row>
May I create the messages in the dispatcher?
Thank you
Ernesto DuranHello, isn't it possible to create an inbound abap Proxy in XI that wait for the message then this inbound proxy loops into the message and call and outbound proxy for each entry(row).
The outbound proxy is working well for me but I'm having problems routing the message back to XI... I get the problem "SAP:Code p1="No inbound interface found for sender" But when I route the message to a business systems everything is ok.????
Anyway what I want to do is:
jdbc adapter --> XI --> inbound proxy --> XI --> outbound proxy --> XI --> Idoc adapter --> R3
And the steps inbound proxy --> XI --> outbound proxy --> XI are used only to split the message.
The reason why I try to use this approach is that I don't understand how I can split a message in java or XSLT maybe someone know???
Thank you
Ernesto Duran -
In jdbc adapter what is the difference between insert and update insert
in jdbc adapter what is the difference between insert and update insert
Edited by: katru vijay on Mar 22, 2010 7:43 AMPlease refer to this Link [Document Formats for the Receiver JDBC Adapter|http://help.sap.com/saphelp_nw04/Helpdata/EN/22/b4d13b633f7748b4d34f3191529946/frameset.htm]
Hope this helps.
Regards,
Chandravadan -
JDBC Adapter: DELETE and INSERT in Mapping
Hi,
I have a JMS to JDBC interface. While this is straightforward enough, there is a requirement to clear the contents of the table before carrying out the insert
What I've tried is:
<MT_Message>
<Statement>
<TableClear>
<action> .....attribute mapped to SQL_DML
<access> ....element mapped to DELETE FROM table
<TableInsert>
<action> .....attribute mapped INSERT constant
<table> ......element mapped to Table name
<access> ...allthe fields in the table
The DELETE statement works and the Insert statement work but they won't work together. Is this possible at all? What other options are there in this case?I went for two different Statement tags so the structure of the Message Type is:
<MT_Message>
<StatementDelete>
<TableClear>
<action> ....attribute mapped to SQL_DML
<access> ...element mapped to DELETE FROM Table
<StatementInsert>
<TableInsert>
<action> ....attribute mapped to INSERT constant
<table> ....element mapped to table name
<access> ...all the columns in my table -
Sender JDBC Adapter and Synchronous Interfaces
Hello
I have a Oracle/JDBC -> XI -> ECC/RFC scenario. The communication mode is Synchronous.
In the Oracle database I have a table with a "STATUS" field. When JDBC Adapter Sends the rows from this table to the Integration Engine, it updates the "STATUS" from "G" (GENERATED) to "R" (READ).
The response from the RFC contains for each row sent to RFC a "STATUS_from_RFC" field, that I would like to use to update Oracle STATUS field to "S" (SUCCESS) or "E" (ERROR).
Can the Sender JDBC Adapter use the response from the Synchronous RFC to update Oracle "STATUS" field itself ?
Or do I need a Receiver JDBC Adapter? In this case, I have to use asynchronous communication and BPM, ok ?
thanks
JulioBhavesh,
<i>>>>But, the online help states it supports QOS of BE and so it does support Synchronous Processing.</i>
Even File adapter has QOS of BE
To my understanding response back is possible only if it is PUSH + Sync
Adapters PUSH + Sync
HTTP
SOAP
RFC
XI
etc...
For the above response is possible
Adapter PULL + Sync
File
JDBC
etc..
In general there can be a response if there is a request. In the case of File and JDBC there is no request message coming to the adapter, its the adapter which is actually requesting.
This is just an idea and my understanding.. might not be true If possible do try it and let everyone know I will also give it a try when time permits
Thanks,
Prakash -
Adapter Limitations Of Sender JDBC and Mail Adapter
hi All,
could you tell me the limitations of JDBC and Mail Adapter .i need to document these details .
Regards
Vidya SagarHI Vidya,
If i was you, i would do a list of things that i would need about these adapters, o i would search the SAP.help documentation for a first view and later ask about this possibility. Another way is to read the SCN doubts about these adapters and you can find some problems. You should think about the PI version as well.
Regards.
Maybe you are looking for
-
Help with adobe digital publishing professional step by step guide
hello can you please give me a link for the step by step for proffesional edition, im goiing to buy the license and i ant to read about how to publish multiple folios app for apple and for android thanks
-
Text input into WebTemplate and sending it to an ODS - urgent
SDNers, I have a unique requirement. I need to take in text input on screen and then send back the same into an ODS in BW. Something like : Project Overrun | Text Area 20% | <Project Manager's comments> I need to pass this on to atleast an ABAp FUnct
-
Dear Experts, While i create packaging in Handling unit ther is a tab of Additional Data in Sales and distribution.In that we have Item Category - Issue is i am inputing manual item category TAN but i want to pick automatically. I am unable to find
-
How to create a Watch List using JSF
I'd like to build a HTML UI which includes the toggling of items from a watch list. For example, stocks or system alerts which are important to the user. First of all are there any JSF example which demonstrate this type of application? What is the b
-
JavaScript onKeyUp() not working in a BSP integrated in SAP GUI
hi everybody. we want to run a bsp application in sap gui using the Javascript based WYMeditor.(http://www.wymeditor.org/) But thought this wysiwyg editor is working fine while testing in a seperate browser window it won't work while integrated in SA