Author: jeff.yuchang
Date: 2010-10-12 01:23:49 -0400 (Tue, 12 Oct 2010)
New Revision: 1033
Modified:
branches/RiftSaw-2.1.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/ws/WebServiceClient.java
Log:
*RIFTSAW-299, defer the invocation util transaction commits.
Modified:
branches/RiftSaw-2.1.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/ws/WebServiceClient.java
===================================================================
---
branches/RiftSaw-2.1.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/ws/WebServiceClient.java 2010-10-11
13:20:23 UTC (rev 1032)
+++
branches/RiftSaw-2.1.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/ws/WebServiceClient.java 2010-10-12
05:23:49 UTC (rev 1033)
@@ -189,11 +189,24 @@
}
else
{
- // one-way invocation
- ExecutorService executorService = executionEnvironment.getExecutorService();
+ // one-way invocation, also defer the invoke until the transaction commits.
+ Scheduler scheduler = executionEnvironment.getScheduler();
executionCallable = new OneWayCallable(mex.getMessageExchangeId());
- executorService.submit(executionCallable);
-
+
+ scheduler.registerSynchronizer(new Scheduler.Synchronizer() {
+
+ public void beforeCompletion() {
+
+ }
+
+ public void afterCompletion(boolean success) {
+ if (!success) return;
+
+ ExecutorService executorService = executionEnvironment.getExecutorService();
+ executorService.submit(executionCallable);
+ }
+ });
+
mex.replyOneWayOk();
}
}
Show replies by date