Speaking of the scope of the monitor, could we get some elaboration on
I read the page and I like the sound of it, but I still really don't
understand how the monitor app would fit in with my other apps.
Do all the apps have to be on one physical server?
Right now between my dev and stage environments and 3 load-balanced
production servers, I have 15 CB apps, and a simple task like reiniting
all the production apps is kind of a pain.
Is that the sort of thing this monitor might provide?
On the config thing, I would soooo totally dig a UI for the config file
and environments file. Imagine being able to go in and choose your
stage environment and see the aggregation of all the settings that are
going to be applied via the base config and the environment interceptor.
Also, with the latest version of the XSD, an interface could prompt you
for all the correct possible settings and ensure your schema is correct.
Maybe that's just a pipe dream, but now that Adam got be thinking about
it I can't stop.
Great input Brad!!
The ColdBox monitor sits in server scope (right now) and can access
everything from any ColdBox App (if registered though).
So for example, we could build something which shows all plugins in an
application or display the config file.
Clear log files, announceInterceptions, runEvents etc.
You name it....
The reinit is nice! Select multiple apps and click reinit.
mmm....all apps on a physical server?.....for now yes, but maybe we
could build a proxy for it.
UI for config file could be an option too, but I think that's another
More ideas please!
It would be useful to find a way to do this across multiple instances on the same system. Not sure how to best do that though. At ESRI we have a Java tool called Tangosol Coherence which allows us to share data across any number of instances/servers which we can use to send signals to various instances of CB. Without that I am not sure what would be a good way to do this. (Coherence is several thousand per server)
Perhaps socket communications with a master/slaves architecture? Each CB instance that would use this would have to register itself with the master. Not exactly simple but it could work.
I will let the cat out of the bag.
Myself and Tom De Manincor have been working on what we call ColdBox Sync. He has been using it for quite a while now since I created it and has made some great strides into what we want to head it towards to. Basically, it uses JMS via event gateways to connect a cluster of ColdBox Applications.
The basics are that you install the ColdBox Sync event gateway on a server and then you install the ColdBox Sync interceptor on your application. This will create a cluster aware coldbox application for internal caching events: cache insert, cache removed, cached expired.
The sync interceptor can also listen for cluster messages and cluster announcements. Basically, you have a pre-defined set of Coldbox commands we created:
- app restart
- cache flush
- log files flush
- scope flush
And then we have open custom interceptors that you create for ANYTHING you want. Thus, we could use the coldbox monitor to announce cluster aware messages AND local server applications also. Basically, the coldbox monitor can use coldbox sync to talk to a cluster of apps if so desired. The good thing is that you can easily bring in a coldbox app into a cluster node by just declaring the coldbox sync interceptor. IF you just want local applications, then the coldbox monitor interceptor will suffice.
The core is pretty much set. The thing is to build a nice GUI to handle the monitoring and the messaging.
ColdBox Sync is still pretty much in an alpha stage and Tom and I need to actually revise it in order to open it. However, we still have not decided if it will be open source or a paid addon.
What are your thoughts on where this could be taken?
That all sounds pretty darn cool Luis. Let us know when/if you have a beta to play with.
Being greedy and cheap, I personally would like you to release it as open source and free.
That being said, I do think your target audience on this might be more "enterprisy" and I do think you deserve to get some return on the hard work you put in. I trust you'll make the right decison on how to release it.