cancel
Showing results for 
Search instead for 
Did you mean: 

Message "Lost" in a JMS adapter.

Former Member
0 Kudos

hi to all,

i need to connect XI to IBM Websphere MQ, using JMS adapter.

I did it well, i can exchange the message perfectly, but i have a strange behavior when websphere send message(XML) on queue with same_msgId for all message.

In this case i receive just the first of a series of message, and i "loose" the other, i know that the problem is the unique msgId of MQ, but how can i catch the error in jms adapter?

or how can i keep persistent the message in queue?

i've check the flag 'Transactional JMS session' to keep it persistent.

I wold like that mine JMS adapter answer with an error or don't consume the message keeping it in the queue.

thanks in advance

Claudio.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Claudio,

i think your JMS adapter is working okay because it takes the first msg which it gets of a msgID...........Now xi has no way of knowing that multiple msgs it will get with same msgID as XI expects each msg to have a unique msgID.........So the problem lies with your Websphere MQ.......just see it that how you can avoid this thing of multiple msgs being generated with the same msgID by MQ as even if a batch program is creating these msgs in MQ, then also each msg should have a unique msgID for it........

Thanks,

Rajeev Gupta

Former Member
0 Kudos

thankyou Rajeev,

is the same think i had... so i can be more sure now.

ciao

Claudio.

Answers (2)

Answers (2)

former_member187437
Contributor
0 Kudos

HI Claudio,

I too face a similar issue.

Mine is asynchronous jms-idoc scenario.

Rarely messages get lost.

According to certain sdn threads, it might be because of non-unique ids..

Any idea how to confirm its because of non-unique id?

Do we have any log anywhere?

how did you resolve the issue?

prateek
Active Contributor
0 Kudos

<i>In the JMS sender adapter, the XI Message ID can be defined as GUID, JMS

Message ID, JMS Correlation ID, or JMS Property. The resulting ID must comply

with ISO-11578. Furthermore, <b>the JMS Provider has to ensure that the ID is

unique, otherwise message processing will fail</b>.</i>

According to

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5059f110-0d01-0010-7c8b-fdc983be...

<i>i know that the problem is the unique msgId of MQ, but how can i catch the error in jms adapter?</i>

Form XI perspective, u may raise an alert.

Regards,

Prateek

Former Member
0 Kudos

Hi Prateek,

do you have an idea how can i raise an alert if my adapter discard the message?!

thanks

Claudio.

prateek
Active Contributor
0 Kudos

Not from Adapter. But of course through adapter modules

/people/amol.joshi2/blog/2006/11/27/alerts-from-adapter-modules--the-jra-way

Regards,

Prateek

Former Member
0 Kudos

Hi Prateek,

i dont think by adapter module in this scenario you can raise an alert......because the problem is with uniqueness of msgID.........but every msg has a msgID so your adapter module will process every msg in the sameway.........but since the msgID is same, then only the first msg will be processed and the other msgs when they will try to store their msg processing data in XI database, they will fail because already the first msg processing data has that msgID, so the remaining msgs will be rollbacked by XI.............

Hi Claudio,

you will have to find a way in MQ to stop this thing of multiple msgs being generated by same msgID......i think there may be some property in MQ which will decide how and when a new msgID should be generated........just see this thing in MQ.............there should be a way in MQ which shall generate a unique msgID for each msg.........

Thanks,

Rajeev Gupta

Former Member
0 Kudos

hi Prateek,

i think it's difficult to raise an allert becouse i receive just the firs message and the othere are stored in:

SQL> desc XI_AF_SVC_ID_MAP;

Name Null? Type

-


-


-


MSG_ID1 NOT NULL NVARCHAR2(63)

MSG_ID2 NOT NULL NVARCHAR2(63)

PERSIST_UNTIL NOT NULL TIMESTAMP(6)

the message remain in this table as you specified in the parameter into the CC.(TIme period for Duplicate Check for EO(IO) sec).

thanks

Claudio.

Former Member
0 Kudos

Hi Rajeev,

unluckily i cannot manage MQ, i'm not the owner, i should ask to that team to do it, but it's not so easy.

thanks

Claudio.