So, we have the following service call (just showing the header):
<service verb="update" noun="PaymentMethodFileStatus" transaction-timeout="6000" semaphore="fail" semaphore-parameter="paymentMethodFileId">
<in-parameters>
<parameter name="paymentMethodFileId" required="true"/>
<parameter name="statusId" required="true"/>
<parameter name="statusDate" default="ec.user.nowTimestamp"/>
</in-parameters>
And a screen with this transition:
<transition name="markPaymentMethodFileAsSent">
<service-call name="sssonline.basalt.PaymentMethodServices.update#PaymentMethodFileStatus"
in-map="[paymentMethodFileId: paymentMethodFileId,
statusId: 'PmfsSent']"/>
<default-response url="."/>
</transition>
And in the screen, a field with a link:
<field name="paymentMethodFileId">
<default-field title="File ID">
<link url="paymentMethodFiles" text="${paymentMethodFileId}" link-type="anchor" condition="paymentMethodFileId"/>
</default-field>
</field>
I’ve tried adding the transaction-timeout to the service-call in the transition as well…it has no effect. Essentially after 60 seconds goes by, I’ll get a Bitronix timeout.
So…my alternative is to make a service job out of it…and have it run in the background. I know it’ll work and I know it’ll honor the the transaction timeout.
But we also have another like this…that returns a larger PDF which also suffers the same timeout issue. That one is more annoying as while we can do that as part of a service job, we would now need to store the resulting PDF instead of just producing it on the fly.
Anyway, I suspect “you shouldn’t want to do that” is probably the answer…but, it still doesn’t explain why the transaction timeout isn’t honored.