Have you considered writing jms persister? Have you done any performance bechmarks on writing in a file vs Database vs JMS Queue.
I am of the opinion that JMS would be ideal here may actually give a better performance then a simple File write or a batchDB.
Please provide your inputs.
I haven't considered it, but I think it's an excellent idea. Patches welcome :)
All persistence is done in a background, low priority thread. So changing persister implementations doesn't have much impact on application responsiveness, though it does have an impact on local system resource utilization.
In general testing I found the file persister to be quicker than the JDBC persister, though the total overhead depends a lot on how your system is configured. For example, if you put your logging on a different storage device than application data, resource impact is negligible, and most likely this will be the highest performance option. But, if you do a lot of logging to your system's primary storage device, you will get more application interference.
But back to your main point -- i think a JMS persister will be a great value to the system overall.
What is the best way that you would recommend to configure the beet's buffering mechanism so that it writes the BTEvent on JMS Queue as soon as it gets it.
Configuring a SyncTaskExecutor will get you about halfway there:
<bean id="syncExecutor" class="org.springframework.core.task.SyncTaskExecutor"/>
<bt:manager task-executor="syncExecutor" ... />
setting the flush-threshold to '1' will effectively cause instantaneous writes, with the negative side-effect that every event will also record a 'flush' event, which is probably not what you want. you could configure your persister to ignore these i suppose.
are you sure you want to disable the buffering completely? if your JMS queue puts are transactional, there's opportunity to interfere with the calling application, esp. if there's a JTA transaction already in progress.
if you just want to see your events persisted faster, you could shorten the flush schedule. default is five minutes; e.g. shorten to 15 seconds:
<bt:manager flush-schedule="0/15 * * * * ?" ... />
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.