« Oracle, spoons and toasters... | Main | ObjectGrid Programming Guide »

August 03, 2005

Difference between startup beans and XD partitioning

Someone asked me the following question:

Hi Billy,

Can you please tell me the different between "WAS 6.0 Startup Bean" and "WPF's getPartitions() callback API"?

Someone asked me why not use the "Startup Bean" support to process the interrupted work after the singleton failover to another cluster member by HAManager. I saw your /dev/websphere posting dated on June 26, 2005 regarding "Startup beans in WAS 6.0". Can you send me some information about the "Startup bean" usage? We need to justify the need for extra $$$ on XD in order to use the WPF features.

Startup beans activate on every cluster member. It's symmetric. AppStartup.start and PSSB.getPartitions have similar semantics in that both are called when the JVM starts.

But, PSSB.partitionLoad is called in WPF to activate individual partitions on exactly one online JVM in the cluster. Every cluster member gets an initial PSSB.getPartitions callback so that each application that uses partitioning can provide an initial list of the partitions that it requires. You can use getPartitions as a trigger to bootstrap non partition specific activity in a cluster member and this makes it similar to AppStartup.start. But, exactly one cluster member receives a subsequent partitionLoad event for each partition defined by the application.This is the difference. If you don't need singleton activity then startup beans give you can event on every JVM when it starts. But, if you want singleton level behavior the startup beans don't offer this.

Interestingly, my samples for partitioning now use both. I don't use the AppStartup.start method at all. I use PSSB.getPartitions to bootstrap the app. But, I do use AppStartup.stop to tear down the app when either the app is stopped or when the JVM is stopped.

August 3, 2005 | Permalink


Post a comment