[jboss-as7-dev] JBAS-8680 and JBAS-9178

Brian Stansberry brian.stansberry at redhat.com
Mon Apr 11 22:24:45 EDT 2011


Nice! Merged.

On 4/11/11 3:03 PM, Kabir Khan wrote:
> 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 at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev


-- 
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat



More information about the jboss-as7-dev mailing list