cancel
Showing results for 
Search instead for 
Did you mean: 

Building a bridge with JMS between XI and ICAN (SUN)

Former Member
0 Kudos

Hi,

we whant to build a bridge between XI and ICAN over JMS. To avoid to create as many comm. channels and Queues as message interfaces we whant to create a "generic" JMS adapter. This adapter reads the message type and message namespace out of two jms properties and create such a XI message. This comm. channel should used in diff. sender ag.

Is this a proper solution and implement someone something like this ?

Regards,

Gerald

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Gerald,

I'm doing more or less what Christine is suggesting. I defined a 'generic' Message Interface with just one dummy element assigned it to my JMS Sender Communication Channel in the Sender Agreement and in the Receiver and/or Interface Determination I mostly use the 'EX'-Condition to test on the different root elements/namespaces that could come in through that channel and route them accordingly.

e.g.

/p1:Article EX --> Route to xyz

/p2:Customer EX --> Route to abc

(or respectively route them all to the same Target System, but map them to differently to different interfaces when you do this in the Interface Determination - the tricky thing in this case is that you will have some problems using the Graphical Mapping Tool)

The namespace prefixes p1, p2, etc. have to be defined in the Condition Editor together with the XPath.

The nice thing is that in the Condition of an Receiver/Interface Determination you can specify any arbitrary XPath and need not stick to what the message interface defines (just the handy way of clicking on the element and hacing the Xpath defined for you is not possible that way - so you have to write your XPath manually). Therefore, the generic dummy interface can really be the simplest possible.

regards,

Peter

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Gerald,

Have you configured your JMS adapter so that it can commuinicate with a seebyeond JMS??

If yes, then please do guide me because we had the same scenario a few weeks back and as we were not able to do it via our JMS adapter, we had to go for a JAVA MAPPING, that passes the message to SEEBEYOND ICAN JMS.

Any inputs on this would be really helpful and if you need to know how to communicate to ICAN jms via a JAVA code from XI< then I can help you too

REgards,

bhavesh

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Grerald,

I have configured a JAVA code that calls my ICAN JMS and posts a message into it successfully. IF you need to know how to post message to an ICAN jms via a JAVA code to be used in your mapping as an user defined function, do let me know. I can help you do the same.

Regards,

Bhavesh

Former Member
0 Kudos

Hi,

I know that there is a one to one relationship between sender ag. and comm. channel but it's possible to use a comm. channel in different sender ag. like the IDOC or ABAP proxy "adapter".

In the example adapter is the method "createMessageRecord" which allows to define the message. action and actionNS. The generic JMS adapter should use this method.

I think it should work like this :

1. ICAN puts a message into a queue.

2. genericJMS takes the message and get the root element.

3. genericJMS creates a MessageRecord and sets action and actionNS like the root elememt of the payload message.

4. genericJMS sends the message to the AF.

5. XI reads the action and actionNS and uses the right sender agr.

Hope this works. Whant do you think ?

Regards,

Gerald

Former Member
0 Kudos

Hi Gerald,

I think, it doesn't work. First of all, your JMS adapter would reside on the adapter framework, so there is no way to send a message from that adapter to the adapter framework, as it would already be in the adapter framework. Then each sender agreement needs to have a comm channel, so you could not configure your sender agreements for your case either. Sender Agreements without comm channel won't activate.

You try to do something that doesn't make much sense in my opinion although there is a solution possible in standard without custom programming. Think about the proposed workaround, if you could live with that. The major advantage it will have, is that it is pure XI standard and therefore doesn't require custom programming and is easy to monitor. Even if you would suceed with your solution and it would work, it would most likely be hard to monitor during runtime and then you wouldn't have saved a lot.

best regards

Christine

Former Member
0 Kudos

Hi Gerald,

in XI there is a one to one relationship between comm channel and sender agreement so it is not possible the ay you intend to. However can't you create a generic message with some identification tags and one tag that contains the payload and then use XPath conditions in the receiver or interface determination?

Regards

Christine