My
https://github.com/kabir/jboss-as/commits/JBAS-8680_JBAS-9178 branch contains the
history stuff. I'll be attending the JAX conference in London tomorrow, but will do
the command line parts around that, along with any suggestions for what I have done for
the history part.
The definition of 'successfully booted' is more strict in standalone and triggered
by the BootstrapListener, in domain mode it is triggered in HostControllerService.start()
and DomainControllerService.start(). Once the server is successfully booted we back up
the xml to
.initial - this is only ever done once, this file does not get overwritten by us ever
(unless a user deletes it)
.original - this is done for each restart
.last - contains the last version of the file
Then each run gets a folder, for standlone it is
standalone/configuration/standalone_xml/current
Each up date results in a new copy of the file:
standalone.v1.xml
standalone.v2.xml
etc.
We keep the last 100 copies of this. So once we get to v101, we delete v1, etc.
domain.xml and host.xml work the same, just different names.
Once the server is restarted, and if the standalone/configuration/standalone_xml/current
directory exists, it is copied to
standalone/configuration/standalone_xml/<timestamp-of-current-restart>. These get
deleted automatically after a month .
When starting the server we create a
standalone/configuration/standalone_xml/snapshots/<timestampt>.xml file (this is the
same as the .original file, but will never get overwritten)
There are some operations to manage snapshots:
[localhost:9999 /] :take-snapshot
{
"outcome" => "success",
"result" => {"name" =>
"/Users/kabir/sourcecontrol/jboss-as7/git/jboss-as/build/target/jboss-7.0.0.Beta3-SNAPSHOT/standalone/configuration/standalone_xml/snapshot/20110411-204125317.xml"},
"compensating-operation" => undefined
}
#This ^ creates another timestamped version in the
standalone/configuration/standalone_xml/snapshots/ folder
[localhost:9999 /] :list-snapshots
{
"outcome" => "success",
"result" => {
"directory" =>
"/Users/kabir/sourcecontrol/jboss-as7/git/jboss-as/build/target/jboss-7.0.0.Beta3-SNAPSHOT/standalone/configuration/standalone_xml/snapshot",
"names" => [
"20110411-204010866.xml",
"20110411-204015241.xml",
"20110411-204123984.xml",
"20110411-204124693.xml",
"20110411-204125317.xml"
]
},
"compensating-operation" => undefined
}
#This ^ lists all the snapshots on the server
[localhost:9999 /] :delete-snapshot(name=BOGUS)
{
"outcome" => "failed",
"failure-description" => "No files beginning with 'BOGUS'
found in
/Users/kabir/sourcecontrol/jboss-as7/git/jboss-as/build/target/jboss-7.0.0.Beta3-SNAPSHOT/standalone/configuration/standalone_xml/snapshot"
}
[localhost:9999 /] :delete-snapshot(name=20110411-20401)
{
"outcome" => "failed",
"failure-description" => "Ambiguous name '20110411-20401' in
/Users/kabir/sourcecontrol/jboss-as7/git/jboss-as/build/target/jboss-7.0.0.Beta3-SNAPSHOT/standalone/configuration/standalone_xml/snapshot:
[20110411-204010866.xml, 20110411-204015241.xml]"
}
[localhost:9999 /] :delete-snapshot(name=20110411-2040108)
{
"outcome" => "success",
"result" => undefined,
"compensating-operation" => undefined
}
#This ^ deletes a snapshot using its name, only enough of the name to uniquely identify a
snapshot is needed.
These operations exist on the root of standalone, domain and host.
On 11 Apr 2011, at 13:13, Kabir Khan wrote:
On 8 Apr 2011, at 17:54, Kabir Khan wrote:
>
> On 8 Apr 2011, at 17:42, Kabir Khan wrote:
>>> A more important question is what constitutes a clean server boot? We'll
need some callback in the persister to be triggered when that happens (since
ConfigurationPersister.store()) is not called until people start changing the model). Some
thoughts about when this could get called are either:
>>> -Once we have parsed the config file into updates and successfully executed
those in the model controller
>>> -The above but all services have successfully started (similar to what we do
in ApplicationServerService.BootstrapListener()). I think a problem with this is that
people could have started issuing management commands once the protocol + handlers are up
and running before all the other services are up and running.
I've gone with this option in standalone mode, writes to the model are not backed up
until the standalone server has successfully booted.
Now, the question is when the domain is considered to be properly started?
-Once we are ready to start the servers? Bad config in host/domain here could screw up
startup for one or more servers.
-Once all the servers have been started successfully? If a server does not start for
whatever reason we won't get the domain files backed up.
For the command line stuff, I am adding this extra system property for standalone mode
(default value is 'standalone.xml':
-Djboss.server.config.file
and these two extra possible properties for the command line for domain mode:
-Djboss.domain.config.host
-Djboss.domain.config.domain
The default values will be 'host.xml' and 'domain.xml'.
If specified it can either be a full path:
-Djboss.domain.config.host=/somewhere/blah/some-host.xml
Or if a simple name, a file in jboss.domain.config.dir:
-Djboss.domain.config.host=special-host.xml
Or any of the backed up files using the known prefixes:
-Djboss.domain.config.host=initial
-Djboss.domain.config.host=last
-Djboss.domain.config.host=original
-Djboss.domain.config.host=v4
_______________________________________________
jboss-as7-dev mailing list
jboss-as7-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev