简体   繁体   中英

How to check oracle listner status by java program on linux Server

How to check oracle listener status by java program on Linux Server.

How I do the server by manually. After login to the server, I have to execute .oraenv proflie of oracle database which asks for Oracle SID{Oracle database name} then it will start working

lsnrctl status command.

[oracle@xx$ . oraenv ORACLE_SID = [daltaasm] ? deltaasm The Oracle base has been set to /u01/app/oracle oracle@XX$ clear oracle@xx$ . oraenv ORACLE_SID = [deltaasm] ? deltaasm The Oracle base remains unchanged with value /u01/app/oracle oracle@xx$ ^C oracle@xx$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-APR-2018 05:18:21

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 02-APR-2018 11:45:50 Uptime 2 days 17 hr. 32 min. 31 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Log File /u01/app/oracle/diag/tnslsnr/deltaoramegan/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DeltaOraMegan.local)(PORT=1521))) Services Summary... Service "+ASM" has 1 instance(s). Instance "+ASM", status READY, has 1 handler(s) for this service... Service "deltaasm" has 1 instance(s). Instance "deltaasm", status READY, has 1 handler(s) for this service... Service "deltaasmXDB" has 1 instance(s). Instance "deltaasm", status READY, has 1 handler(s) for this service... The command completed successfully oracle@xx$ ^C

So how to implement java program to check lsnrctl status command status

If I don't do manually execuation. oraenv profile on Linux server it will show lsnrctl status command not found

ex oracle@xx$ snrctl status lsnrctl status command not found

Please suggest the problem solution in java program

oraenv is just a wrapper shell script that will set $ORACLE_HOME , $ORACLE_SID , $ORACLE_BASE and the $PATH variable for you. You can just open it with a text editor and you will see all the shell code. In a nutshell, it will look at /etc/oratab where Oracle records the information of Oracle homes (there can be more than one on a given server) and also which database uses those which Oracle home.

The lsnrctl binary can be found in $ORACLE_HOME/bin , so the trick is to find out what $ORACLE_HOME is. If you install it in a fixed location, you can just simple set the $ORACLE_HOME and $PATH accordingly, for example:

Assuming that I installed the Oracle software in /opt/oracle/product/12.2.0.1/dbhome_1 my environment variables would look as follows:

export ORACLE_HOME=/opt/oracle/product/12.2.0.1/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin

From that point on you can now just call lsnrctl (because it's now in the $PATH ).

So, the trick is to find out where you have the Oracle software installed which you can just find out by looking at /etc/oratab or, in case you always install it in the same place (very often the case), just set the variables beforehand.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM