Jeff Bounds' Weblog The Grove

Monday Sep 26, 2005

Its been quite a while since I've blogged on anything. So I'll try to pick up with something useful. I was tasked by a collegue to create a script that would ensure that his Sun Java System Application Server instance would restart if his Solaris 10 server ever went down. For this example we are talking about normal power outages/flickers occuring in a home. Not anything you would face in a reliable data center. The SJSAS documentation describes how to do this with /etc/inittab. I decided to try some of the new capabilities in S10, mainly SMF.

I borrowed from these 3 sources:
http://www.cuddletech.com/blog/pivot/entry.php?id=326
http://www.sun.com/bigadmin/content/submitted/config_smf.html
http://www.sun.com/bigadmin/content/selfheal/sdev_intro.html

Step 1) Create the SMF description. Here is one for the Application Server. You should chanage DOMAINNAME to be the name of the domain you wish to restart. Currently this script will only start 1 domain. I called this SMF description sjsas.xml



<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>

<!--
Jeff Bounds 09/12
Service manifest for Sun Java System Application Server
-->

<service_bundle type='manifest' name='SUNWappserver:appserver'>
<service name='application/sjsas' type='service' version='1'>
<create_default_instance enabled='false' />
<single_instance />

<dependency name='fs' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local' />
</dependency>

<dependency name='net' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/network/initial' />
</dependency>

<exec_method type='method' name='start' exec='/opt/SUNWappserver/appserver/bin/asadmin start-domain DOMAINNAME' timeout_seconds='-1'>
<method_context>
<method_credential user='appservd' group='appservd' />
</method_context>
</exec_method>

<exec_method type='method' name='stop' exec='/opt/SUNWappserver/appserver/bin/asadmin stop-domain DOMAINNAME' timeout_seconds='-1'>
</exec_method>
<stability value='Unstable' />

<template>
<common_name>
<loctext xml:lang='C'>
SJSAS
</loctext>
</common_name>
</template>

</service>
</service_bundle>



Step 2) You will need to copy this file and fix permissions for it. I placed this file in the applications directory underneath the manifest dir.

chown root:sys /var/svc/manifest/application/sjsas.xml

chmod 444 /var/svc/manifest/application/sjsas.xml



Step 3) Import the service description

svccfg import /var/svc/manifest/application/sjsas.xml



Step 4) Enable the service

svcadm -v enable sjsas




This seems to work just fine for me. I also created a SMF description for Sun Java System Web Server. I'll post that tomorrow

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed