Re: Using GRID Infrastructure to control third party applicaitons?

  • From: Martin Klier <martin.klier@xxxxxxxxxxxxxxxxx>
  • To: mark@xxxxxxxxx
  • Date: Wed, 27 Jan 2016 11:51:27 +0100 (CET)

Hi Mark, 

did you define a CHECK routine for the fish? 

The CRS agent depends on checking after changing a status, you can't spare that 
step. 

-- 
Freundliche Grüße / Best regards 

Martin Klier 
Managing Partner / Database Technology 
Oracle ACE 

Performing Databases GmbH 
Your reliability. Our concern. 

mailto:martin.klier@xxxxxxxxxxxxxxxxx ;
http://www.performing-databases.com ;

Von: "Mark J. Bobak" <mark@xxxxxxxxx>
An: exriscer@xxxxxxxxx
CC: "Ilmar Kerm" <ilmar.kerm@xxxxxxxxx>, "ORACLE-L" <oracle-l@xxxxxxxxxxxxx>
Gesendet: Dienstag, 26. Januar 2016 18:07:46
Betreff: Re: Using GRID Infrastructure to control third party applicaitons?

Ok, I was able to see log files after doing:
crsctl set log res "glassfish=5"

and I was able to confirm it was set with:
crsctl get log res glassfish
Get Resource glassfish Log Level: 5

Then, when I try to start, I get:
crsctl start res glassfish
CRS-2672: Attempting to start 'glassfish' on 'my_new_test'
CRS-2674: Start of 'glassfish' on 'my_new_test' failed
CRS-4000: Command Start failed, or completed with errors.

But, glassfish actually *does* start up. It's just the Oracle doesn't know it:
crsctl status res glassfish
NAME=glassfish
TYPE=ora.local_resource.type
TARGET=ONLINE
STATE=OFFLINE

And in the log file, I see:
more scriptagent_oracle.log
Oracle Database 12c Clusterware Release 12.1.0.1.0 - Production Copyright 
1996,
2013 Oracle. All rights reserved.
2016-01-25 14:36:29.588: [ AGFW][414611040] Starting the agent: /u01/app/12.1
.0/grid/log/my_new_test/agent/crsd/scriptagent_oracle/
2016-01-25 14:36:29.589: [ AGENT][414611040] Agent framework initialized, Proc
ess Id = 32021
2016-01-25 14:36:29.589: [ USRTHRD][414611040] Failed to initialize agent, 
could
not get type name..
2016-01-25 14:36:29.589: [ AGFW][414611040] Agent is exiting with exit code:
-1

I *think* the most relevant error is "Failed to initialize agent, could
not get type name..", but I have no idea what it means, and searching MOS and
Google has not been successful, thous far.

Any thoughts, ideas, or suggestions would be appreciated.

Thanks,

-Mark

On Mon, Jan 25, 2016 at 6:49 PM, Ls Cheng < exriscer@xxxxxxxxx > wrote:

Hi

In 12c you have to look in $ORACLE_BASE/diag/..................
(DIAGNOSTIC_DEST)

On Mon, Jan 25, 2016 at 8:02 PM, Mark J. Bobak < mark@xxxxxxxxx > wrote:

Hi Ilmar,
Thanks for the reply. It appears the log doesn't exist in 12c, or it has a
different name....

[oracle@my_new_test log]$ pwd
/u01/app/12.1.0/grid/log
[oracle@my_new_test log]$ find . -name script\*

No results under DRS_HOME/log for any filename starting with 'script'.

I'll poke around, see if I can figrue out the correct log file.

-Mark

On Mon, Jan 25, 2016 at 11:45 AM, Ilmar Kerm < ilmar.kerm@xxxxxxxxx > wrote:

Hi
We have run it successfully for years to provide high availability for 
MySQL and
currently I'm also setting it up to have a cold standby for Oracle 
database in
Windows.

I haven't seen the attributes START_PROGRAM,STOP_PROGRAM and PID_FILES. 
Are they
new in 12.1?
In 11.2 I've only used attribute ACTION_SCRIPT that points to the script 
that
handles startup/stop and check actions.

Could you have problem with the check action? After start and stop actions
clusterware will also invoke check action to verify that startup/shutdown 
was
successful.
You could verify it from scriptagent logfile:
$CRS_HOME/log/<hostname>/agent/crsd/scriptagent_<username>
It logs all the actions executed and the responses.

My old presentation about this topic:
http://www.slideshare.net/ilmarkerm/making-mysql-highly-available-using-oracle-grid-infrastructure

Ilmar

On Mon, Jan 25, 2016 at 5:28 PM, Mark J. Bobak < mark@xxxxxxxxx > wrote:

Hi all,
Has anyone sucessfully done this? In my case, I've managed to figure out 
how to
create teh necessary resource, but it doesn't actually work.

What I'm tying to do, is start up a Glassfish server (running on the DB 
server,
single instance, in my case), with a dependency on the database. I have 
ORDS
(formerly known as APEX Liostener) deployed in Glassfish, and if I just 
start
Glassfish via init.d, it will start before the database, and gets stuck
reporting 404, even after the db starts, until I bounce Glassfish. So, I 
want
to start if from GI home, using crs/has, and have a dependency on the db, 
to
solve the startup sequence issues. (Also, to make it (presumably?) stop 
and
stat automatically whenever the DB is bounced.)

So, I created the resource, like so:
crsctl add resource glassfish -type generic_application -attr
"START_PROGRAM='/etc/init.d/glassfish_domain1
start',STOP_PROGRAM='/etc/init.d/glassfish_domain1
stop',START_DEPENDENCIES='hard(ora.orcl.db)',STOP_DEPENDENCIES='hard(ora.orcl.db)',PID_FILES=/var/run/glassfish.pid"

This seems to have worked, no error is returned, and one can query the 
resource
and see it exists:
crsctl status res glassfish
NAME=glassfish
TYPE=generic_application
TARGET=OFFLINE
STATE=OFFLINE

But, when I try to start it, I get this:
crsctl start res glassfish
CRS-2672: Attempting to start 'glassfish' on 'my_new_test'
CRS-2674: Start of 'glassfish' on 'my_new_test' failed
CRS-2679: Attempting to clean 'glassfish' on 'my_new_test'
CRS-2681: Clean of 'glassfish' on 'my_new_test' succeeded
CRS-4000: Command Start failed, or completed with errors.

And, at the end, the glassfish server is, in fact, running. So, it thinks 
it
failed to start, but it starts, then it does the clean, and it thinks it
cleaned everything up (remove logifle and pid file and kill process) but 
it in
fact remains running.

I suspect that there is a 'tamplate' for the startup/shutdown script? I 
found a
doc on MOS, that says my script must accept 'start','stop','clean, and 
'check'
as parameters. When I run my sript from the command line, it works 
beautifully,
and those parameters all work as expected.

So, my next guess is return values? Not sure what to try next...

Has anyone gotten this to work? Any idea what I'm missing from my script?

Thanks,

-Mark

--
Ilmar Kerm

Other related posts: