cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with VCS Application Agent

Michelle_Lai
Level 4
Hi,

I made my program an Application type of resource in VCS. I specified the startprogram, stopprogram and monitorprocesses. However, when I tried to bring the resource online. I got the following error message in the log:

V-16-2-13066
"Agent is calling clean for resource( ) because the resource is not up even after online completed."

Did I miss any steps to bring the resource onine?Message was edited by:
Michelle Lai
10 REPLIES 10

Tom_Maher
Level 3
Hi Michelle,

I'd check the associated log for your resource type - ie %VCS_HOME%\log\_A.txt

You might see a bit more detail there...

Michelle_Lai
Level 4
I checked the Application_A.txt file in /var/VRTSvcs/log, and got the following error messages:
......
Resource ( :( Attribute (MonitorProcesses) does not belong to this resource
Resource ( :( Attribute (PidFiles) does not belong to this resource
Resource ( :( Attribute (MonitorProgram) does not belong to this resource
Resource ( :( Attribute (ClearProgram) does not belong to this resource
......

Any idea of what is wrong?Message was edited by:
Michelle Lai

Jim_Senicka
Level 3
can you cut and paste the resource description from the main.cf file?

Michelle_Lai
Level 4
Here is the definition of my main.cf:

include "types.cf"

cluster silverdart (
UserNames = { admin = hKKeKIjRKmKS }
ClusterAddress = "137.69.104.139"
Administrators = { admin }
CounterInterval = 5
)

system arrow (
)

system canuck (
)

group test(
SystemList = { arrow = 0, canuck = 1 }
)

Application test_server (
StartProgram = "/usr/sbin/clu_start"
StopProgram = "/usr/sbin/clu_stop"
MonitorProcesses = { "/usr/sbin/test" }
)

IP test_IP (
Device = eth0
Address = "137.69.104.104"
)

Mount test_Mount (
MountPoint = "/mnt/share"
BlockDevice = "/dev/sdc3"
FSType = ext2
FsckOpt = "-n"
)

test requires test_IP
test requires test_Mount

)

Gene_Henriksen
Level 6
Accredited Certified
Looks like you have confused the MonitorProcesses and MonitorProgram attributes. If you have a program that will run and monitor the application, it should be in MonitorProgram, otherwise list processes you can see in a ps listing like "nmbd, smbd".

Michelle_Lai
Level 4
I have tried to change

MonitorProcesses = { "/usr/sbin/test" }

to

MonitorProcesses = { "test" }

But it does not make any difference.

Gene_Henriksen
Level 6
Accredited Certified
What is actually running? Is it call "test"? Can you see it in the process table when VCS is attemping to monitor it?

Michelle_Lai
Level 4
Yes, test is the binary that is actually running.

The result of ps -ef|grep test shows:

root 28581 1 0 10:58 ? 0:00:00 /usr/sbin/test

Gene_Henriksen
Level 6
Accredited Certified
In checking with the support.veritas.com website, I found this note.

(I searched for "Application not online")

Document ID: 243984
http://support.veritas.com/docs/243984 E-Mail Colleague IconE-Mail this document to a colleague

VERITAS Cluster Server (VCS) Application resource FAULTs, even though application is online.
Details:
This TechNote complements the information found in the VERITAS Cluster Server (VCS) 2.0 Bundled Agents Reference Guide (Solaris) - Application Agent - Sample Configurations - page 5.

The sample configuration clearly demonstrates ways on the use of Application agent to monitor third-party applications. There are cases where just the PidFiles attribute may only need to be configured to monitor the application. This may be due to the fact that MonitorProgram is not available with the application or VCS monitor fails with MonitorProcesses, and eventually FAULTs the resource, even though the application comes up online.

According to the agent definition, the PidFiles has to be application-generated files, and not all of the applications will generate a PidFiles upon startup. Under these conditions, users may not be able to use the PidFiles attribute.

One possible solution: Build a wrapper with the application startup script to collect the PIDs to a file. Then use this wrapper script as StartProgram to the Application resource, instead of using the startup script that comes with the application. The PID file can then be used by VCS to monitor/online/offline successfully. An example is shown below -


Application custserv (
User = custserv
StartProgram = "/opt/spectrum/custserv/startCustServ.sh"
StopProgram = "/opt/spectrum/custserv/stopCustServ.sh"
CleanProgram = "/opt/spectrum/custserv/stopCustServ.sh"
PidFiles = { "/opt/spectrum/custserv/pid" }
)

...where PidFiles is generated from the wrapper script "startCustServ.sh" and not from the application.

This approach can be used in situations where MonitorProgram and MonitorProcesses seems ineffective or just not available to control the Application with VCS.

Michelle_Lai
Level 4
My problem is resolved now. I think the main thing is I should add parameters in the MonitorProcesses field, like:

MonitorProcesses = {"/usr/sbin/test -o option"}

Thanks for all the help!