This may not be the right place to ask for help for this problem but i might be because i'm using Java & SqlPlus in alot of Kshell scripts.
Just to give a high level picture, i'm basically using Java to control each SqlPlus execute command, by reading a flat file that contains the run values from previous steps and then in lets say the current step, check the values from previous steps to see for example if step3 = step1 + step2 ect.
The Java program will compare the previous step rules and then execute the SqlPlus, query to output from the SqlPlus and make a new Java entry.
But what is happening is in the Oracle Session Log it is creating and not deleting 10s upon 10s of seession entries and when i look at some of them they say they are Java executables.
So do you think this is a Java problem and if so is there a way to somehow delete the session immediately after the step runs so that the session thread disappears?
Thanks for any insights and even quesses at this point!
Fyi it's really only a problem now that system has been moved to a very heavily used instance and now everyone is seeing alot more sessions being created other than their own and not sure why the system is grinding to a halt.
...
But what is happening is in the Oracle Session Log it is creating and not deleting 10s upon 10s of seession entries and when i look at some of them they say they are Java executables.
So do you think this is a Java problem ...
Yes, it could be. You will have to ensure a couple of things in your java program:
(a) all transactions must be committed or rolled back, either in the sqlplus session or outside in the (invoker) java program. If your transactions are locking an database object, a good practice is to commit/roll back explicitly so that the lock is released.
(b) close all your ResultSet,
and Connection objects explicitly. If you have them in a "try" block, add a "finally" block and close all the objects by invoking their respective close() methods. If you do not do this, the session remains in Oracle and shows up in v$session view of Oracle. Too many of them, and your system comes to a grinding halt. Or you might even encounter the "too many open cursors" error.
Quote:
...
and if so is there a way to somehow delete the session immediately after the step runs so that the session thread disappears?
...
Well, the best thing you can do to make your java apps scalable is to follow (a) and (b) above. If your system has come to a halt and you want to know how to kill those sessions, then you'll have to ask your Oracle DBA to issue a command like the following:
where "sid" and "serial#" are the columns of v$session view, corresponding to your java executable as the program.
There is another way of killing the relevant Oracle process from the OS itself, but it is not recommended as it could lead to database instance failure.
Quote:
...
Just to give a high level picture, i'm basically using Java to control each SqlPlus execute command, by reading a flat file that contains the run values from previous steps and then in lets say the current step, check the values from previous steps to see for example if step3 = step1 + step2 ect.
The Java program will compare the previous step rules and then execute the SqlPlus, query to output from the SqlPlus and make a new Java entry.
Not knowing your application, it is risky to suggest anything. But you do realize that you could call sqlplus from Korn shell itself and do all that processing, right ? Using java to invoke sqlplus just seems to be a convoluted way of doing things.
Hi All,
I have just downloaded fedora 27 iso and set it up in virtual box.
I want to learn Hadoop so trying to install Apache hadoop. Before all those I have to install Oracle Java 1.7.15 (as mentioned in the Apache hadoop page).
Can you please help me how to Uninstall currently installed... (6 Replies)
Hi all,
on AIX 6.1 I want to run the following but for 5 DB. How should I do that ? Using FOR, WHILE ???? How ?
export ORACLE_SID=DB1
sqlplus / as sysdba << EOF
whenever sqlerror exit sql.sqlcode;
whenever oserror exit FAILURE
set define off
set head off
set feedback off
set echo off... (1 Reply)
Hi,
I am very new to shell scripting and trying to write a simple shell script in which i am trying to achieve the following:
1. Connect to oracle database hosted on a different server
2. fire a query on the oracle db
3. store the output in a variable
4. use this variable for further logic... (26 Replies)
Hi,
I am very new to shell scripting and trying to write a simple shell script in which i am trying to achieve the following:
1. Connect to oracle database hosted on a different server
2. fire a query on the oracle db
3. store the output in a variable
4. use this variable for further logic... (1 Reply)
a job extracts orcle data into unix as flat file.
a single record breaks into two record in unix flat file. This is the case only for 6 records out of 60 lack records.
(its not single record in two line. but its single record into record. ie., \n come into picture)
can you tell me what... (6 Replies)
Hi,
I want to use sqlplus from server1
sqlplus usr1/pass1@dns1
and I want to connect to an Oracle database from a server2.
Unfortunately the database was created on the server1 and on server2.
So when I use the command just like that...it connects to the database from the server2. ... (2 Replies)
Hi ALL,
I would like to execute one SQL query(ORACLE) in UNIX shell script. For this I used sqlplus in script and tested locally. It worked fine. But my requiremnt is to execute the script from Java. In this case the UNIX part is working but sqlplus is not returning anything
The JAVA code used... (0 Replies)
Hi guys,
I am facing issues while triggering sqlplus with "/" option
I can connect to database with USER ID and password. but, if i just specify "/" option since it is "externally identiifed user" it doesn't work
Any suggestions?
mail me @ Removed.
Regards, Giri (2 Replies)