[JBoss jBPM] - Re: performance limits of jbpm
by kukeltje
no, it is still not finished, but improved a lot in 3.3.1
1) is being taken care of in 4.0... logging is changing and will be configurable as well. The thing is that 'governance' sometimes requires a lot of info... so it is a tradeoff...
2) as said before... if there is a technical error by which a transaction is rolled back, nothing has happened in the process. Yes, there is an error, but that should be dealt with on a different level... not the process logging....
In one of the production systems I developed (non-jbpm based, not even workflow) we made the logging async in a transaction to an in-memory jms queue. That would write data to the db afterwards... An issue of what to do if the system crashes and not all logging has been written to the db.... again... it is a tradeoff....Writing it to the local filesystem is *not* high availability... most crashes we had were due to disk crashes... but you can configure the jms queue to use local file persistence (we tried that and it works, but switched back to keeping it in-memory).
So logging async (JMS) with local file persistency as storage before the log is actually written to the database is imo a good solution. Regarding your main problem.... patches are always welcome....
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4207817#4207817
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4207817
15 years, 5 months
[JBoss jBPM] - Re: performance limits of jbpm
by roschmel
Do you refer to the new GWT Console? - I tested it in 3.3.0 and it was not really finished by then....
Logging:
I would like to solve two issues - 1) the log service is just to slow - its the main perfomance bottleneck of the enigne - 2) Is unsafe becuase it does not log when something goes wrong.
To have really good logs after a crash you must log you stuff (nearly) immidieatly to a persistent store. Otherwise when you pull the plug out of your server you have now idea what you already have done.
Additionally when you want to now that your database has a problem - then you might not be able to log this to the database.
Conclusion:
Really good logs must be written nearly immediatily to an extremly high available store ( - the local file system).
So I try to write the logs and the process hisotry using log4j and its MDC to the file system. From their you can transfer it to the database or you can direclty configure a JDBC Appender within log4j to write it to the db. Then you would need to look at the files just in case the db was unavailable.
The main problem is that this does not work without patching jBPM. The LoggingInstance is hardcoeded in the ProcessInstance and the logging service only gets called at the end of execution. This is were I am stuck at the moment. I would need a way to configure the LoggingInstance just like the Services.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4207703#4207703
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4207703
15 years, 5 months