Jbpm7 spring boot business application: No active transaction after arjuna transation timeout - spring-boot

I'm encountering the same problem described here: https://issues.redhat.com/plugins/servlet/mobile#issue/RHBPMS-4621.
I use Jbpm 7.41 business application with oracle database. Under high load, transaction timeouts are detected and arjuna marks them for rollback. Then, the Jbpm executor thread reuses the same transaction and throws a repetitive message "No active transaction...".
Does someone know how to fix this problem? I think that the same fix done for JtaTransactionManager in RHBPMS-4621 is needed for KieSpringTransactionManager.
Thank you in advance,

we checked your question within the Narayana team http://narayana.io and with guys from JBPM. We agree that's seems to be an issue within the KieSpringTransactionManager. The best would be to create a new issue in JBPM tracker - see it here: https://issues.redhat.com/projects/JBPM
With that the JBPM team should be announced about it and somebody will take care of it.
Thanks
Ondra

Related

to create logging at the time of start and down time of the spring MVC application

I need to create logging (logging and entry in a DB table), with the cause or exception occurred if a running spring application is stopped abrubtly or due to any server exception occurred. Is there any concept or module in spring which I can use for this purpose?
Please help if anyone knows or have done the same thing, thanks in advance!!
You can implement EventListener for ApplicationContextStoppedEvent and there you can add your logic

Why do we need EJB transaction instead of JDBC?

I'm studying EJB and I have a hard time to understand why we need EJB transactions while we already have JDBC. All the necessary actions such as rollback, commit are already provided by JDBC.
Could anyone help me to understand this subject?
Thanks all.

JMS message not getting added

I am facing a strange situation while using HornetQ.
My application architecture -
JMS provider : HornetQ (Standalone server, not used for anything else. I've created 2 queues on this server, say Q1 and Q2).
Producer : A web application deployed on a separate machine. This application creates instances of "ObjectMessage", passing a "Job" class instance as argument to the "ObjectMessage.setObject()" method and adds the message to Q1. Uses Spring JMS.
I also set a string property named "AGENT" in the message before adding it to the queue.
What's peculiar is that if I call ObjectMessage.setStringProperty("AGENT", null) or if I do not add the property to the message itself, the message does not get added to Q1. However, this does not happen on Q2, and I'm able to see the message in HornetQ's JMX console.
Is there some queue specific configuration that I should be looking out for?
Apologies for the loose wording - My team and I have been facing a tough time trying to fix this issue.
Thanks.
How are you creating the Producer? and How are you sending it?
It seems you're not committing on a transactional session?
I'm assuming you are using JMS, but I would need to see some code to help you in a better fashion. Usually the JBoss Forum is a better suitable place for discussions like this, since the SOF is not really a discussion forum.
I think the best would be you open a forum on JBoss (since it will be followed by a discussion) and provide the link here.

Transaction Management in Spring-Integration framework and apache Camel

I'm browsing Integration frameworks to choose the best one for my integration problem. one thing that I want to know is transaction management in multiple application integration context, supported or not ? and if it does, how ? in Pro Spring Integration I didn't find a clear solution they just put sth like
<int:poller fixed-rate="1000">
<int:transactional/>
</int:poller>
and I couldn't understand how this manage transaction along multiple application ?
could anyone expert in these frameworks help me to find out to know that how transaction management and recovery in case of error in any application that transaction is executing can be done using these frameworks ?
for example consider this scenario : application A initiate transaction and use applications B and C in middle and finally do sth after B and C and commit it, if in this scenario application c fails or throw an exception, is there anyway to rollback transaction in B and A and how ?
for Camel, see theses links on implementing transacted routes and error handling strategies
http://camel.apache.org/transactional-client.html
http://camel.apache.org/error-handling-in-camel.html
In addition to these links above from Ben, then the Camel in Action book, has a full chapter covering using transactions with Camel, chapter 9.
There is a free excerpt of the chapter 9 sponsored by FuseSource at: http://fusesource.com/collateral/88

Spring Integration as embedded alternative to standalone ESB

Does anybody has an experience with Spring Integration project as embedded ESB?
I'm highly interesting in such use cases as:
Reading files from directory on schedule basis
Getting data from JDBC data source
Modularity and possibility to start/stop/redeploy module on the fly (e.g. one module can scan directory on schedule basis, another call query from jdbc data source etc.)
repeat/retry policy
UPDATE:
I found answers on all my questions except "Getting data from JDBC data source". Is it technically possible?
Remember, "ESB" is just a marketing term designed to sell more expensive software, it's not a magic bullet. You need to consider the specific jobs you need your software to do, and pick accordingly. If Spring Integration seems to fit the bill, I wouldn't be too concerned if it doesn't look much like an uber-expensive server installation.
The Spring Integration JDBC adapters are available in 2.0, and we just released GA last week. Here's the relevant section from the reference manual: http://static.springsource.org/spring-integration/docs/latest-ga/reference/htmlsingle/#jdbc
This link describes the FileSucker with Spring Integration. Read up on your Enterprise Integration patterns for more info I think.
I kinda think you need to do a bit more investigation your self, or do a couple of tries on some of your usecases. Then we can discuss whats good and bad
JDBC Adapters appear to be a work in progress.
Even if there is no specific adapter available, remember that Spring Integration is a thin wrapper around POJOs. You'll be able to access JDBC in any component e.g. your service activators.
See here for a solution based on a polling inbound channel adapter too.

Resources