On Wed, Nov 26, 2008 at 3:29 PM, Matthieu Riou <[EMAIL PROTECTED]>wrote:

> On Mon, Nov 24, 2008 at 8:38 AM, Simon Laws <[EMAIL PROTECTED]>wrote:
>
>> I'm creating a sample app that has a BPEL component [1].
>>
>> [DEBUG] - GeronimoLog.debug(66) | >>> Payload: <?xml version="1.0"
>> encoding="UTF-8"?>
>> <Authorize xmlns="http://www.example.org/CreditCardPayment/"; xmlns:ccp="
>> http://www.example.org/CreditCardPayment/";>
>>                         <ccp:CreditCard>
>>                             <ccp:CreditCardType>Visa</ccp:CreditCardType>
>>
>> <ccp:CreditCardNumber>12345678</ccp:CreditCardNumber>
>>                             <ccp:ExpMonth>2</ccp:ExpMonth>
>>                             <ccp:ExpYear>2010</ccp:ExpYear>
>>                             <ccp:CardOwner>
>>                                 <ccp:Name>Fred</ccp:Name>
>>                                 <ccp:Address>
>>                                     <ccp:Street>1 The Road</ccp:Street>
>>                                     <ccp:City>Winchester</ccp:City>
>>                                     <ccp:State>Hampshire</ccp:State>
>>                                     <ccp:ZipCode>AB1 2CD</ccp:ZipCode>
>>
>> <ccp:HomePhone>12345678</ccp:HomePhone>
>>                                 </ccp:Address>
>>                             </ccp:CardOwner>
>>                         </ccp:CreditCard>
>>                         <ccp:Amount>100.0</ccp:Amount>
>>                     </Authorize>
>> [ERROR] - GeronimoLog.error(108) | Error sending message
>> (mex={PartnerRoleMex#hqejbhcnphr3rx2u9wt9hq [PID {
>> http://www.example.org/PaymentProcess}PaymentProcess-1<http://www.example.org/PaymentProcess%7DPaymentProcess-1>]
>> calling null.authorize(...)}): Unable to register synchronizer.
>> org.apache.ode.bpel.iapi.ContextException: Unable to register
>> synchronizer.
>>     at
>> org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(SimpleScheduler.java:206)
>>     at
>> org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(SimpleScheduler.java:364)
>>     at
>> org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(SimpleScheduler.java:232)
>>     at
>> org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsync(PartnerRoleMessageExchangeImpl.java:126)
>>     at
>> org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFailure(PartnerRoleMessageExchangeImpl.java:97)
>>     at
>> org.apache.tuscany.sca.implementation.bpel.ode.ODEExternalService$1$1.call(ODEExternalService.java:132)
>>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>     at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>     at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>     at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.NullPointerException
>>     at
>> org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(SimpleScheduler.java:194)
>>     ... 10 more
>>
>> Anyone seen this before? It comes from [2]
>>
>>         try {
>>             tx.registerSynchronization(new Synchronization() {
>>
>>                 public void afterCompletion(int status) {
>>
>>
>>                     if (status == Status.STATUS_COMMITTED) {
>>                         _todo.enqueue(job);
>>                     }
>>                 }
>>
>>                 public void beforeCompletion() {
>>                 }
>>
>>
>>             });
>>
>>         } catch (Exception e) {
>>             String errmsg = "Unable to registrer synchronizer. ";
>>             __log.error(errmsg, e);
>>             throw new ContextException(errmsg, e);
>>
>>
>>         }
>>
>> So would seem to be associated with the way the transaction context is set
>> up in ODE. Anyone know how the component configuration could affect this? On
>> the face of it my sample is very similar to the bpel-helloworld itests
>> (which run fine) except that the target interfaces have more complicated
>> types. Other than that I'm not doing anything particularly complicated
>> although I have to say the number of files you have to set up to get this
>> working does leave a large element of doubt that they are all correct.
>>
>
> Welcome to BPEL :) From your stacktrace, the most likely issue is that the
> transaction manager doesn't return any transaction. It's hard to tell
> exactly why but the common case is that you have a previous error that
> caused an invalidation of the current context.
>
> Matthieu
>
>
>>
>> Simon
>>
>> [1]
>> http://svn.apache.org/repos/asf/tuscany/sandbox/travelsample/paymentprocess-contribution/
>> [2]
>> http://svn.apache.org/repos/asf/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
>>
>>
>
Hi Matthieu. Thanks, thought I would give it a spin;-)

With more detailed logging turned on I see;

[DEBUG] - GeronimoLog.debug(66) | replyWithFailure
mex=hqejbhcnphr3s5c8w972kg fa
ilureType=OTHER description=org.osoa.sca.ServiceRuntimeException:
org.apache.axi
s2.AxisFault: Connection refused: connect details=null
15:54:01,781 DEBUG [PartnerRoleMessageExchangeImpl] replyWithFailure
mex=hqejbhc
nphr3s5c8w972kg failureType=OTHER
description=org.osoa.sca.ServiceRuntimeExcepti
on: org.apache.axis2.AxisFault: Connection refused: connect details=null
[DEBUG] - GeronimoLog.debug(66) | create work event for
mex=hqejbhcnphr3s5c8w972
kg
15:54:01,781 DEBUG [PartnerRoleMessageExchangeImpl] create work event for
mex=hq
ejbhcnphr3s5c8w972kg
[ERROR] - GeronimoLog.error(108) | Error sending message
(mex={PartnerRoleMex#hq
ejbhcnphr3s5c8w972kg [PID {
http://www.example.org/PaymentProcess}PaymentProcess-
1] calling null.authorize(...)}): Unable to register synchronizer.
org.apache.ode.bpel.iapi.ContextException: Unable to register synchronizer.
        at
org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
SimpleScheduler.java:206)
        at
org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(Simpl
eScheduler.java:364)
        at
org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(
SimpleScheduler.java:232)
        at
org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsy
nc(PartnerRoleMessageExchangeImpl.java:126)

I was actually expecting the "connection refused" as I don't currently have
the target service running. I was just trying to get the BPEL process parsed
and initializing the variables correctly in the first instance. Is that
actually causing the lack of transactions? Is there more logging I should
turn on? Currently I have.

log4j.category.org.apache.ode.axis2=OFF
log4j.category.org.apache.ode.bpel.engine=DEBUG
log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=OFF
log4j.category.org.apache.ode.bpel.epr=OFF
log4j.category.org.apache.tuscany.sca.implementation.bpel=DEBUG
log4j.category.org.apache.tuscany.sca.implementation.bpel.ode=DEBUG
log4j.category.org.apache.tuscany.sca.implementation.bpel.provider=DEBUG

Thanks

Simon

Regards

Simon

Reply via email to