Bug 826491 - Message for receive activity is not needed anymore if we send a SOAP message for receive before pick activity
Summary: Message for receive activity is not needed anymore if we send a SOAP message ...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: riftsaw
Version: 5.3.0 GA
Hardware: All
OS: All
medium
medium
Target Milestone: CR1
: 5.3.0 GA
Assignee: Julian Coleman
QA Contact: Ivo Bek
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-05-30 10:49 UTC by Ivo Bek
Modified: 2014-10-15 17:25 UTC (History)
8 users (show)

Fixed In Version: 5.3.0.GA
Doc Type: Bug Fix
Doc Text:
When a BPEL process receives the second message for a receive activity before it receives the first one for a pick activity and the activities are correlated, the second message will no longer be required by any subsequent BPEL process instances with the same correlation identifiers.
Clone Of:
Environment:
Last Closed: 2014-10-15 17:25:57 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Issue reproducer (9.52 KB, application/zip)
2012-05-30 11:10 UTC, Marek Baluch
no flags Details
deadlock (1.33 MB, text/x-log)
2012-07-27 10:04 UTC, Ivo Bek
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RIFTSAW-495 0 Major Closed Message for <receive> activity is not needed anymore if we send a SOAP message for <receive> before <pick> activity 2012-10-05 08:35:26 UTC

Description Ivo Bek 2012-05-30 10:49:55 UTC
Description of problem:

See linked issue

Comment 1 Marek Baluch 2012-05-30 11:10:27 UTC
Created attachment 587683 [details]
Issue reproducer

Steps to reproduce:

1) unpack into ${soa_root}/jboss-as/samples/quickstarts
2) ant deploy
3) use e.g. SOAP-UI:
   3.a) invoke the 'recreq' operation
   3.b) invoke the 'pickreq' operation
4) at this point you can invoke 'pickreq' as many times as you like and you will not see a running instance in the console.

Comment 3 Suz 2012-06-12 06:09:32 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
When selecting pickreq, you will not see a running instance in the console. The message for the <receive> activity is not displayed if you send a SOAP message for <receive> before a <pick> activity

Comment 4 David Le Sage 2012-06-13 03:13:07 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-When selecting pickreq, you will not see a running instance in the console. The message for the <receive> activity is not displayed if you send a SOAP message for <receive> before a <pick> activity+When selecting pickreq, you will not see a running instance in the console. The message for the receive activity is not displayed if you send a SOAP message for receive before a pick activity

Comment 5 JBoss JIRA Server 2012-06-13 03:51:14 UTC
Jeff Yu <cyu> updated the status of jira RIFTSAW-495 to Coding In Progress

Comment 6 JBoss JIRA Server 2012-06-13 08:46:51 UTC
Jeff Yu <cyu> made a comment on jira RIFTSAW-495

Below is what I found.

When BpelRuntime encounters this sort of case, it will save the 'MEX' (MessageEXchange) as the 'QUEUED' status, it will be automatically dequeued next time when the related process instance was triggered. Thats the reason that for the first time, if it sends the <pick>, the original <receive> activity message will be re-run automatically.

Somehow, the MEX still remains 'QUEUED' status, even though it has been matched in the second time in our case. This should be the bug.

Comment 7 JBoss JIRA Server 2012-06-13 12:30:19 UTC
Jeff Yu <cyu> made a comment on jira RIFTSAW-495

Fixed it by updating the status from 'QUEUED' to 'MATCHED' once we find it matched, and when dequeue the correlators, only those are not in the 'MATCHED' status will be tried.

Comment 8 JBoss JIRA Server 2012-06-13 12:31:01 UTC
Jeff Yu <cyu> updated the status of jira RIFTSAW-495 to Resolved

Comment 10 Marek Baluch 2012-06-22 05:48:15 UTC
Not fixed in 5.3.ER4. 

The fix is included in RiftSaw 2.3.6.Final (see https://issues.jboss.org/browse/RIFTSAW-495). 5.3.ER4 includes RiftSaw 2.3.5.Final.

Changed proposed target milestone to ER5.

Comment 11 David Le Sage 2012-07-02 02:34:36 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-When selecting pickreq, you will not see a running instance in the console. The message for the receive activity is not displayed if you send a SOAP message for receive before a pick activity+When a BPEL process receives the second message for a receive activity before it receives the first one for a pick activity and the activities are correlated, the second message will no longer be required by any subsequent BPEL process instances with the same correlation identifiers.

Comment 12 David Le Sage 2012-07-02 02:35:10 UTC
Thanks Ivo.  I used your comment as the basis for the new note.

Comment 14 Ryan Zhang 2012-07-20 06:34:57 UTC
Please verify this issue on 5.3.0 CR1.

Comment 15 Ivo Bek 2012-07-24 14:40:08 UTC
Verified in JBoss SOA-P 5.3.0.CR1

Comment 16 Ivo Bek 2012-07-26 12:06:06 UTC
Hi, I noticed that on MSSQL2008R2 database, the fix doesn't work ... it causes a deadlock:

Transaction (Process ID 79) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
2012-07-26 07:53:16,958 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] Could not synchronize database state with session
org.hibernate.exception.LockAcquisitionException: Could not execute JDBC batch update

To reproduce the issue ... use SOA-P 5.3.0.CR1 with MSSQL2008R2 and run issue reproducer from attachments.

Thanks

Comment 17 Ivo Bek 2012-07-26 12:28:46 UTC
FYI, the deadlock issue appears also sometimes on another databases but not so often as mssql2008r2

Comment 18 Ivo Bek 2012-07-27 10:04:58 UTC
Created attachment 600737 [details]
deadlock

Comment 19 Jeff Yu 2012-07-30 06:08:25 UTC
Hi Ivo,

It seems to me that the deadlock problem is not related to this issue, it just happen to use this test case can reproduce the deadlock issue.

Comment 20 Ivo Bek 2012-07-30 08:02:04 UTC
Hi Jeff,

thank you, so I created related issue https://bugzilla.redhat.com/show_bug.cgi?id=844278 (https://issues.jboss.org/browse/RIFTSAW-504)

Comment 21 Jeff Yu 2012-07-30 08:12:45 UTC
Thanks Ivo. Should we close this issue. As you verified it against other databases, like mysql and postgres?

Comment 22 Ivo Bek 2012-07-30 08:21:52 UTC
Yes, I think we can close it, I didn't meet another issues than the deadlock.

Comment 23 JBoss JIRA Server 2012-10-05 08:35:26 UTC
Jeff Yu <cyu> updated the status of jira RIFTSAW-495 to Closed


Note You need to log in before you can comment on or make changes to this bug.