How to close JDBC client connections in JSP (9IDS Jdeveloper)
Can anyone tell me how to close JDBC connections neatly through JSP in Oracle 9IDS Jdeveloper.
I have a developer who has deployed a WAR file (comprising JSP page) to the Tomcat webserver.
The page works fine except that it always leaves a JDBC client connection after the user closes the internet explorer window.
I've tried using dead connection detection without success.
At the operating system level, I have a script that can kill these sessions but I would prefer if theres some way the connection can be closed neatly through the JSP application.
Hi:
At database level you can:
See CONNECT_TIME and IDLE_TIME options to CREATE/ALTER PROFILE
Joao
Similar Messages
-
Junit : how to create JDBC URL connection
hi folks,
I am implementing JUnit in my application , for that I have seen srdemo application every thing is fine but i havent get how to configure JDBC URL connection 'SRServiceLocalTesting' ? can any body tell me how to do it.
Thanks in advance
Regards
PravinHi,
Have a look,
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/odi/odi_11g/odi_project_xml-to-table/odi_project_xml-to-table.htm
Thanks,
Guru -
How to make the client connect to the server at the command prompt?
I found this code on IBM's website, it was a training session on servers and clients using java.
The code compiles fine and the server seems to start up properly when I use java Server 5000. I think whats happening is the server is running and listening for a connection on port 5000.
When I try to run the client I get the following error.
Exception in thread "main" java.lang.NoSuchMethodError: main
I see a start() method but no main. As far as I know, applications should all have main, it seems as if the person who wrote this kinda confused applets with application. Not that I would really know what happened.
If you have time, could you tell me if there's an easy fix for this? I would love to have this client/server working if it isn't too much trouble. As I have looked all over the net for a free client/server applet that will actually let me see the java code and none of the free ones do allow getting to their source.
Most of them allow you to customize them somewhat but also have built in advertising that can't be removed.
This is the closest I have come to finding one that lets me look under the hood. But alas it doesn't work out of the box and I don't know what to do to fix it.
Heres the code: Server:
import java.io.*;
import java.net.*;
import java.util.*;
public class Server
// The ServerSocket we'll use for accepting new connections
private ServerSocket ss;
// A mapping from sockets to DataOutputStreams. This will
// help us avoid having to create a DataOutputStream each time
// we want to write to a stream.
private Hashtable outputStreams = new Hashtable();
// Constructor and while-accept loop all in one.
public Server( int port ) throws IOException {
// All we have to do is listen
listen( port );
private void listen( int port ) throws IOException {
// Create the ServerSocket
ss = new ServerSocket( port );
// Tell the world we're ready to go
System.out.println( "Listening on "+ss );
// Keep accepting connections forever
while (true) {
// Grab the next incoming connection
Socket s = ss.accept();
// Tell the world we've got it
System.out.println( "Connection from "+s );
// Create a DataOutputStream for writing data to the
// other side
DataOutputStream dout = new DataOutputStream( s.getOutputStream() );
// Save this stream so we don't need to make it again
outputStreams.put( s, dout );
// Create a new thread for this connection, and then forget
// about it
new ServerThread( this, s );
// Get an enumeration of all the OutputStreams, one for each client
// connected to us
Enumeration getOutputStreams() {
return outputStreams.elements();
// Send a message to all clients (utility routine)
void sendToAll( String message ) {
// We synchronize on this because another thread might be
// calling removeConnection() and this would screw us up
// as we tried to walk through the list
synchronized( outputStreams ) {
// For each client ...
for (Enumeration e = getOutputStreams(); e.hasMoreElements(); ) {
// ... get the output stream ...
DataOutputStream dout = (DataOutputStream)e.nextElement();
// ... and send the message
try {
dout.writeUTF( message );
} catch( IOException ie ) { System.out.println( ie ); }
// Remove a socket, and it's corresponding output stream, from our
// list. This is usually called by a connection thread that has
// discovered that the connectin to the client is dead.
void removeConnection( Socket s ) {
// Synchronize so we don't mess up sendToAll() while it walks
// down the list of all output streamsa
synchronized( outputStreams ) {
// Tell the world
System.out.println( "Removing connection to "+s );
// Remove it from our hashtable/list
outputStreams.remove( s );
// Make sure it's closed
try {
s.close();
} catch( IOException ie ) {
System.out.println( "Error closing "+s );
ie.printStackTrace();
// Main routine
// Usage: java Server <port>
static public void main( String args[] ) throws Exception {
// Get the port # from the command line
int port = Integer.parseInt( args[0] );
// Create a Server object, which will automatically begin
// accepting connections.
new Server( port );
}CLIENT:
import java.io.*;
import java.net.*;
public class ServerThread extends Thread
// The Server that spawned us
private Server server;
// The Socket connected to our client
private Socket socket;
// Constructor.
public ServerThread( Server server, Socket socket ) {
// Save the parameters
this.server = server;
this.socket = socket;
// Start up the thread
start();
// This runs in a separate thread when start() is called in the
// constructor.
public void run() {
try {
// Create a DataInputStream for communication; the client
// is using a DataOutputStream to write to us
DataInputStream din = new DataInputStream( socket.getInputStream() );
// Over and over, forever ...
while (true) {
// ... read the next message ...
String message = din.readUTF();
// ... tell the world ...
System.out.println( "Sending "+message );
// ... and have the server send it to all clients
server.sendToAll( message );
} catch( EOFException ie ) {
// This doesn't need an error message
} catch( IOException ie ) {
// This does; tell the world!
ie.printStackTrace();
} finally {
// The connection is closed for one reason or another,
// so have the server dealing with it
server.removeConnection( socket );
}Thanks for your time.CLIENT:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Client extends Panel implements Runnable
// Components for the visual display of the chat windows
private TextField tf = new TextField();
private TextArea ta = new TextArea();
// The socket connecting us to the server
private Socket socket;
// The streams we communicate to the server; these come
// from the socket
private DataOutputStream dout;
private DataInputStream din;
// Constructor
public Client( String host, int port ) {
// Set up the screen
setLayout( new BorderLayout() );
add( "North", tf );
add( "Center", ta );
// We want to receive messages when someone types a line
// and hits return, using an anonymous class as
// a callback
tf.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
processMessage( e.getActionCommand() );
// Connect to the server
try {
// Initiate the connection
socket = new Socket( host, port );
// We got a connection! Tell the world
System.out.println( "connected to "+socket );
// Let's grab the streams and create DataInput/Output streams
// from them
din = new DataInputStream( socket.getInputStream() );
dout = new DataOutputStream( socket.getOutputStream() );
// Start a background thread for receiving messages
new Thread( this ).start();
} catch( IOException ie ) { System.out.println( ie ); }
// Gets called when the user types something
private void processMessage( String message ) {
try {
// Send it to the server
dout.writeUTF( message );
// Clear out text input field
tf.setText( "" );
} catch( IOException ie ) { System.out.println( ie ); }
// Background thread runs this: show messages from other window
public void run() {
try {
// Receive messages one-by-one, forever
while (true) {
// Get the next message
String message = din.readUTF();
// Print it to our text window
ta.append( message+"\n" );
} catch( IOException ie ) { System.out.println( ie ); }
import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.*;
public class ClientApplet extends Applet
public void init() {
String host = getParameter( "192.168.1.47" );
int port = Integer.parseInt( getParameter( "5000" ) );
setLayout( new BorderLayout() );
add( "Center", new Client( host, port ) );
}Sorry about that. Now when I run an html file with this applet I just get the x in the corner.
Thanks for looking. -
JDBC-ODBC connectivity from JSP page
hi
i am trying to connect a jsp page with database using jdbc-odbc driver. i have created a dsn with the name 'test' that connects to a database 'test' in SQL server. the following lines has been added to the web.xml file placed in the \WEB-INF folder
<context-param>
<param-name>
javax.servlet.jsp.jstl.sql.dataSource
</param-name>
<param-value>
jdbc:odbc:text, sun.jdbc.odbc.JdbcOdbcDriver
</context-param>
i have also placed the rt.jar file in the \WEB-INF\lib folder. but, when i run the jsp page and ty to make any database interaction, an expection occurs
java.lang.ClassNotFoundException : sun.jdbc.odbc.JdbcOdbcDriver
please helpI think you need to download the JDBC/ODBC driver jar file into your project. For example, if you need a JDBC driver for the Oracle database, you search google for 'oracle jdbc driver'. Its driver is something like classes14.jar. I suggest you create and test your database connection pool in a servlet so you will have an easier time debugging any issues in getting it to work.
Also, as the previous post points out, JSP is for displaying data and submitting user input back to the servlet. Put all your business logic in the servlet, put any data you get from the database in request scope by the servlet, dispatch to the JSP page so it can be displayed. This is a crude example. For a better design read up on MVC (Model View Controller) design. -
-How to use JDBC to connect the SQLServer and Oracle.
Hi,
I create a table in the WIP DB, I want to modify this table when use "PRE-START" activity in POD.
SAPME version: 5.2.3.4 SDK:2.0 DB:SQL2005 and Oracle 10.2g
SourceCode like below:
public void execute(StartHookDTO dto) throws Exception {
initServices();
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=SAPMEWIP", "sa" ,"sap12345");
conn.close();
}catch(Exception e){
e.printStackTrace();
Besides, I already setup the JDBC ClassPath in ConfigTool, but it gets somes error when executing.
the error code like below:
java.sql.SQLException: No suitable driver
Please give me some support or a example, thank you so much!
Br,
AlexYou probably want to use the WIP Datasource defined in JNDI.
-
How do I monitor clients connections on the time capsule?
How do I monitor Wifi connections to the Time Capsule (client mac address, IP, time, etc.)?
There is very little information displayed about clients in Mountain Lion.
Open Macintosh HD > Applications > Utilities > AirPort Utility
Click on the Time Caspule icon
Look for Wireless Clients
Click on the ID number or Name to see more information -
How to use JDBC database connection in Solaris
Hi all,
I am new to Solaris and i want to create an application using JDBC database connection.
I want a small piece of code, probably a login page code that verifies the username from a OpenOffice database (.odb) file. I am particular to know the driver name, etc. If possible give the code using JNDI loopkup.
Thanks in advance,
Parasou.Sure no problem.
Please stand by while I do your work for you. -
How to improve jdbc 4 connection and Transact-SQL
I am using a jdbc 4 connection to connect to Database.
With code
Class.forName("org.postgresql.Driver");
String url = "jdbc:msql://athens.imaginary.com:4333/db_web";
username = �mycon�;
password = �mycon�;
Connection conn = DriverManager.getConnection(url, username, password);And quering and updating with database with TSQL
Sample code
Statement select = con.createStatement();
ResultSet result = select.executeQuery("SELECT key, val FROM t_test"); I am able to get the result
But i want to improve it.
Whether i should use any other api or any other configrational changes I need to imporove the rilibility and increase the speed.
Any suggestions?Please don't cross-post. You have a thread for this in the JDBC forum (which is where it belongs, if anywhere), so keep the discussion there, please.
-
How to configure jdbc/jndi connection in crystal report 10
Post Author: effy
CA Forum: Data Connectivity and SQL
i have tried to configure jdbc/jndi connection , i have both
drivers data base side and crystal report side but i
can't configure it. so please help if u know
something.Sorry, but I'm not on a home pc, I'm working on a virtualized pc with a long chain of permissions ... so I cannot simply download and run an utility...
Instead... I think (I WAS thinking) someone from SAP can tell me this info ... Probably I'll buy a paid assistance ticket... But really it's a strange thing that a simply connection from a (so) paid software need a so difficult problem solving routine..
I edited my environment variales: JAVA, PATH; CLASSPATH; JAVA_DIR, and a long list of others ... to ALL point to ALL of directory containing used jars...
.. I asked my SysAdmin to edit CrConfig.xml and it's done ... classpath are rights, jdbc infos are also ok, ...
.. but none ... -
How to close all active connections in Times ten database
Hi,
I am new to Times Ten database.
Uisng ttsatus utility I am able to find our the active conenctions but not sure how to close this. I m using windows as OS
Request your help in this regards
Regards,
HarmeetIs there a way to manually kill a lock from a transaction or roll back transaction etc.
In oracle, we just kill the user session.
I have an issue with read-only cache, stuck with the below lock.
I end up in bouncing the dameon (!!@!@)
stopping cachemanager took time.. but still this lock was active.
========================
[ttadmin:lmmk672@MARTD] /psimofmmk2/TimesTen/palmttd1/bin > ttXactAdmin palmttd1
2012-05-31 13:48:23.872
/psimofmmk2/TimesTen/data/palmttd1/data/palmttd1
TimesTen Release 11.2.2.2.0
Outstanding locks
PID Context TransID TransStatus Resource ResourceID Mode SqlCmdID Name
Program File Name: timestensubd
12743 0x2aafe00008c0 138.1298 Active Database 0x01312d0001312d00 IX 0
Program File Name: timestenorad
13824 0x2aaff8199410 12.83968 Active Database 0x01312d0001312d00 IX 0
Command 21019064176 S 21019064176
Table 1732240 W 21018623224 PALM_DBO.EXTRNL_AVAILABILITY_COMBD
Row BMUFVUAAAAaAAAAJBu S 21018623224 SYS.TABLES
Row BMUFVUAAAA3AAAAEhq Sn 21018623224 SYS.CACHE_GROUP
Table 1732480 S 21018623224 PALM_DBO.T10_TEST
Row BMUFVUAAAAaAAAAIBv S 21018623224 SYS.TABLES
Row BMUFVUAAAA3AAAADhr Sn 21018623224 SYS.CACHE_GROUP
Table 1732528 S 21018623224 PALM_DBO.EXCHANGE_TIME
Row BMUFVUAAAAaAAAALBv S 21018623224 SYS.TABLES
Row BMUFVUAAAA3AAAAEhr Sn 21018623224 SYS.CACHE_GROUP -
How could I make a connection to XE using Jdeveloper and JSF?
Hello, I want to develop an application that must interact with a Oracle Database Express Edition. How could I make a connection to it and display, for example, a table from the database in a JSP using JSF in Jdeveloper.
Hi ,
I have installed Jdeveloper 10.1.3.1.0 and Oracle database Express edition 10g on the same machine.I want to connect to the database from Jdeveloper but i get the message "The Network Adapter could not establish the connection" , when i test the connection. The listener is running and am able to connect to database using SQL Plus.
I have tried various methods like giving the ipaddress and giving the URL, looking at the JDBC configuration wizard given in the documentation , but of no use .. can anyone please suggest me how to connect?? -
Crystal Reports's JRC. How to close JDBC connection?
Hi!
I have simple CR JRC application under Oracle AS 10.1.2.0.2, made from Crystal's sample codes.
It works fine, but there is little problem: after closing vievwer's page JDBC connections stays alive.
How can I close them?
Here is my 2 jsp:
---------- Page1.jsp -----------------
"<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="com.crystaldecisions.reports.sdk.*" %>
<%@page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
<%@page import="com.crystaldecisions.report.web.viewer.*"%>
<%
// open the report rpt file
String REPORT_NAME = "directs_q_d1.rpt";
String Login =request.getParameter("p1");
String Password =request.getParameter("p2");
ReportClientDocument reportClientDoc = new ReportClientDocument();
reportClientDoc.open(REPORT_NAME, 0);
reportClientDoc.getDatabaseController().logon(Login,Password);
ParameterFieldController paramFieldController = reportClientDoc.getDataDefController().getParameterFieldController();
paramFieldController.setCurrentValue("", "reportname", new String("DIRECTS_QUARTERLY"));
session.setAttribute("reportSource", reportClientDoc.getReportSource());
reportClientDoc.close();
response.sendRedirect("CrystalReportViewer.jsp");
%>
and
----------- CrystalReportViewer.jsp ------------------------
<%//Crystal Report Viewer imports.%>
<%@page import="com.crystaldecisions.report.web.viewer.*"%>
<%@page import="com.crystaldecisions.reports.sdk.*" %>
<%
//Refer to the Viewers SDK in the Java Developer Documentation for more information on using the CrystalReportViewer
//API.
CrystalReportViewer viewer = new CrystalReportViewer();
viewer.setOwnPage(true);
viewer.setOwnForm(true);
viewer.setPrintMode(CrPrintMode.ACTIVEX);
viewer.setHasRefreshButton(false);
viewer.setEnableDrillDown(false);
viewer.setDisplayGroupTree(false);
viewer.setHasToggleGroupTreeButton(false);
viewer.setHasViewList(false);
viewer.setHasLogo(false);
//Get the report source object that this viewer will be displaying.
Object reportSource = session.getAttribute("reportSource");
viewer.setReportSource(reportSource);
//Render the report.
viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), out);
viewer.dispose();
%>
-------------------------------------Oh, i'm sorry :) It was a "time-out" tag in CRconfig.xml. Tipic closed.
-
How to use JDBC to connect Oracle databse
Hi
I try to connect the oracle databse by using JDBC. But I not sure whether is it correct or not because I learnt from the documentation provided by WWW.JAVA.SUN.
I have create a ODBC DSN file call TKS username/password : tem/manager
then I download the source code and enhance a bit as following :
import java.sql.*;
public class CreateCoffees
public static void main(String args[])
String url = "jdbc:oracle:thin:tem/manager@(
description=(address_list=(
address=(protocol=tcp)
(host=192.9.200.8)(port=1521)))(source_route=yes)
(connect_data=(sid=tks)))";
Connection con;
String createString;
createString = "create table COFFEES " +
"(COF_NAME VARCHAR(32), " +
"SUP_ID INTEGER, " +
"PRICE FLOAT, " +
"SALES INTEGER, " +
"TOTAL INTEGER)";
Statement stmt;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
catch(java.lang.ClassNotFoundException e)
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
try {
con = DriverManager.getConnection(url, "tem", "manager");
stmt = con.createStatement();
stmt.executeUpdate(createString);
stmt.close();
con.close();
catch(SQLException ex)
{ System.err.println("SQLException: " + ex.getMessage());
After that I saved the file as CreateCoffees.java and compiled it
D:\KLTAY\JAVA>javac CreateCoffees.java
CreateCoffees.java:6: unclosed string literal
String url = "jdbc:oracle:thin:tem/manager@(
^
CreateCoffees.java:10: unclosed string literal
(connect_data=(sid=tks)))";
^
CreateCoffees.java:30: cannot resolve symbol
symbol : variable con
location: class CreateCoffees
con = DriverManager.getConnection(url, "tem", "manager");
^
CreateCoffees.java:31: cannot resolve symbol
symbol : variable con
location: class CreateCoffees
stmt = con.createStatement();
^
CreateCoffees.java:34: cannot resolve symbol
symbol : variable con
location: class CreateCoffees
con.close();
^
5 errors
Please give some advise.Thanks
best regards,
TayString url = "jdbc:oracle:thin:tem/manager@(
description=(address_list=(
address=(protocol=tcp)
(host=192.9.200.8)(port=1521)))(source_route=yes)
(connect_data=(sid=tks)))";
After that I saved the file as CreateCoffees.java and
compiled it
D:\KLTAY\JAVA>javac CreateCoffees.java
CreateCoffees.java:6: unclosed string literal
String url = "jdbc:oracle:thin:tem/manager@(
^
CreateCoffees.java:10: unclosed string literal
(connect_data=(sid=tks)))";
^I would suggest putting all code between the quotesj(") on one line and then attempting to recompile. -
How to use jdbc to connect oracle
I want use jdbc direct to connect oracle database,and I
want to use sun Company or oracle Company driver. how can I get driver and how do I write connection string?
Deeply to wait your reply,thank you!The correct format would be jdbc:oracle:thin@server:port:sidTry "jdbc:oracle:thin:@192.168.84.20:1521:ORDB","ysys","fareast"and see what happens.
Note that you two formats for the DriverManager.getConnection() method; if DriverManager.getConnection(db_url, username, password) doesn't work, try the other call with a fully-qualified database url:DriverManager.getConnection("jdbc:oracle:thin:ysys/[email protected]:1521:ORDB")The SID is the server ID that was given to the instance when the database was installed; default is ORCL, but may have been changed. Port default is 1521, but again, this may be different for your system. -
How to use JDBC to connect Tomcat with database server?(Urgent!)
I try to deploy the tomcat and make it connect with databaser server.
I am using mysql connector J 3.0. I added the CLASSPATH of mysql-connector-java-3.0.7-stable-bin.jar in the tomcat.sh .
I also add the web application in server.xml.
When I start tomcat, I can see using Classpath including mysql-connector-java-3.0.7-stable-bin.jar .
But when i browse my jsp including the jdbc, wait for a while, I get a message as following: Timeout on server localhost. My web server and database server is same computer.
Could you tell me what's wrong?Did you check to see that the MySQL database was indeed up and running, and accepting connections when you started Tomcat? Did you make sure that your firewall permits connections to the database?
Timeout errors generally occur when you send a request to a server and the server does nothing with it - i.e., it doesn't respond to it in any way. Most firewalls are configured this way. If I telnet to your machine and I get "connection refused", I know your machine exists and I can try hacking into it. If I telnet and get nothing at all, then I will either assume either there's no actual machine at that address or it's unresponsive.
Maybe you are looking for
-
Looking for a program that can handel import and export of palm doc files
I am looking for a program that can handel the import and export of palm doc Files that can convert them to to either txt or RTF files for Vista 32, running Palm Desktop 7.1. Could anyone give me a few suggestions of any plug-ins that would be good m
-
Hi there, I am migrating an application from Weblogic 10 to Weblogic 10.3. I need to import a desktop from a .portal file in Weblogic 10.3. I know how to do the process of installing and executing this tool in WebLogic 10, but I don't know how to do
-
How to Force enable, silent updates for Adobe flash in windows 8
How to Force enable updates, silently for Adobe flash in windows 8 using group policy? I have followed this Article: http://helpx.adobe.com/flash-player/kb/administration-configure-auto-update-notification.h tml http://gpyall.com/archives/disable-ado
-
I wasn't sure where this question should be posted (Health & Fitness or BB Policies), so I chose this one. I'm assuming it will be moved if I'm incorrect. I'm considering purchasing the Proform Performance 1850 treadmill (PFTL20511), which I understa
-
Need advice to deal with concurrency
Hi, I just need you're advice on how I should handle concurrency. Iam doing ordering assignment, and I need to ensure concurrency. In my assignment concurrency comes into play if/when many customers try to order the same product but there is not enou