Oracle 8i JDBC to connect to 9i DB?
We are having a big Java application that uses Oracle8i as underlying DB. It uses Oracle 8i JDBC for that. Now, we have to extend this application with a module that writes certain things into another DB. However, this DB is on Oracle 9i.
Q: Can we access a 9i DB using the 8i JDBC driver? If yes, is there a special configuration for the JDBC or the 9i DB?
Note: switching the 9i to "8i compatibility mode" is not an option, since we use loads of 9i features in that DB from another application that uses the 9i JDBC driver!
We tried it and we got loads of exceptions from the 8i JDBC driver.
Any comment or hint is more than welcome - we are running out of time...
Hi
I am trying exactly the same thing and am not able to use Oracle8i JDBC for Oracle9i DB. Have u been able to do this? In case yes, please tell me how.
Thanks
Ashish
Similar Messages
-
Oracle 8i jdbc/Tomcat connection issues
Tomcat 4.1.8
Oracle 8i JDBC Driver
I have been able to create the DataSource as a global resource and as a local resource inside the context of the application.
The code hangs when it attempts to create a connection. I have been able to connect to the database and perform the necessary query in a standalone application to ensure that I actually can connect.
JSP Code:
<html>
<head>
<title>VTW App</title>
</head>
<body>
<%
vtw.VTWApp tst = new vtw.VTWApp();
tst.init();
%>
<h2>Results</h2>
<%= tst.getList() %>
</body>
</html>
Java Code (Class called by JSP):
package vtw;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class VTWApp {
String list = "EMPTY";
public void init() {
try{
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Boom - No Context");
System.out.println("Context Created ...");
DataSource ds =
(DataSource)ctx.lookup(
"java:comp/env/jdbc/oracleDB");
if (ds != null) {
System.out.println("DataSource Created ...");
Connection conn = ds.getConnection();
System.out.println("Connection Pulled");
if(conn != null) {
System.out.println("Connection Good");
Statement st = conn.createStatement();
String query = "";
query += "select grpid, to_char(min(dtlastendtime),'mm-dd-yyyy hh24:mi:ss') ";
query += "from calc_table where equipmentsernum in (";
query += "'888000','888001'";
query += ") group by grpid";
ResultSet rs = st.executeQuery(query);
if(rs != null) {
list = "";
while(rs.next()) {
list += (rs.getString(1) + "," + rs.getString(2));
rs.close();
conn.close();
System.out.println("Connection Closed");
} else {
System.out.println("Connection Not Established");
}catch(Exception e) {
e.printStackTrace();
public String getList() { return list; }
}I figured out the issue ...
In the server.xml file the resource & resource params needed to be modified..
1. Set type to oracle.jdbc.pool.OracleDataSource
2. Set factory to oracle.jdbc.pool.OracleDataSourceFactory
3. In the Java code cast the context lookup to an OracleDataSource instead of a java.sql.DataSource
Oracles DataSource does not subclass the jdbc DataSource for its OracleDataSource class everything works fine now.
<Resource name="jdbc/mydb" scope="Shareable" type="oracle.jdbc.pool.OracleDataSource"/>
<ResourceParams name="jdbc/mydb">
<parameter>
<name>validationQuery</name>
<value></value>
</parameter>
<parameter>
<name>factory</name>
<value>oracle.jdbc.pool.OracleDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@server.company.com:1521:dbname</value>
</parameter>
<parameter>
<name>password</name>
<value>guest</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>user</name>
<value>guest</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams> -
Error while creating a report that uses Oracle OCI JDBC connectivity
Please let me know why my CR and LF characters are removed from my forum posting *****
Hi,
I was trying to create a report that uses Oracle OCI JDBC connectivity. I am using Eclipse3.4 download from "cr4e-all-in-one-win_2.0.2.zip". I have successfully created a JDBC OCI connection.
The connection parameters are given below:
URL: jdbc:oracle:oci8:@xe
Database: xe
username: <userName>
password: <password>
I have tested the above connection in Data source Explorer and it works fine!!!
But I am getting the following error when I drag-and-drop a table from the list of tables. Not sure what I am missing here? Any help is highly appreciated.
com.businessobjects.reports.jdbinterface.common.DBException: InvalidURLOrClassName
at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.Open(Unknown Source)
at com.crystaldecisions.reports.queryengine.JDBConnectionWrapper.Open(SourceFile:123)
at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1771)
at com.crystaldecisions.reports.queryengine.Connection.bs(SourceFile:491)
at com.crystaldecisions.reports.queryengine.Connection.t1(SourceFile:2979)
at com.crystaldecisions.reports.queryengine.Table.u7(SourceFile:2408)
at com.crystaldecisions.reports.dataengine.datafoundation.AddDatabaseTableCommand.new(SourceFile:529)
at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)
at com.crystaldecisions.reports.common.Document.a(SourceFile:203)
at com.businessobjects.reports.sdk.requesthandler.f.a(SourceFile:175)
at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.byte(SourceFile:1079)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1163)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:657)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:163)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:525)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:523)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$3.doWork(ExecutorWithIdleProcessing.java:182)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityTask.run(PriorityTask.java:75)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.runSubtask(PriorityCompoundCancellableRunnable.java:187)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityProgressAwareRunnable.runSubtask(PriorityProgressAwareRunnable.java:90)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.doWork(PriorityCompoundCancellableRunnable.java:144)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$IdleTask.run(ExecutorWithIdleProcessing.java:320)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Thanks
Karthik
Edited by: KARTHIK1 on Oct 14, 2009 9:38 PMHi Ted,
Thanks for the feedback. I was able to create a report in Creystal Reports Designer 2008 using OCI. It is not allowing only in the Eclipse plugin. In our environment we are not allowed to user Oracle thin connections and ONLY OCI is allowed.
1) Can you please let me know if there is a way to do this?
2) Will it allow data sources using native database driver?
3) If so, can I use JRC to create these reports from a desktop java program?
Thanks & Regards
Karthik
Edited by: KARTHIK1 on Oct 15, 2009 4:38 PM -
Oracle 8.1.5 and JDBC OCI connection problem
We are running Oracle 8.1.5 on Solaris 7 machine, and our java application running on JDK 1.2 connects to Oracle via JDBC thin driver because we couldn't make jdbc oci driver work.
When we try to connect via oci with the driver originally shipped with 8.1.5, we get:
Exception in thread "main" java.lang.UnsatisfiedLinkError: make_c_state
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:213)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
at java.sql.DriverManager.getConnection(Compiled Code)
at java.sql.DriverManager.getConnection(DriverManager.java:137)
at JDBCTest.main(Compiled Code)
After we downloaded 8.1.6sdk driver from technet and install it, we get:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc8 in java.library.path
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Error.<init>(Error.java:50)
at java.lang.LinkageError.<init>(LinkageError.java:43)
at java.lang.UnsatisfiedLinkError.<init>(UnsatisfiedLinkError.java:42)
at java.lang.ClassLoader.loadLibrary(Compiled Code)
at java.lang.Runtime.loadLibrary0(Runtime.java:471)
at java.lang.System.loadLibrary(System.java:745)
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:209)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
at java.sql.DriverManager.getConnection(Compiled Code)
at java.sql.DriverManager.getConnection(DriverManager.java:137)
at JDBCTest.main(Compiled Code)
I searched this forum for answer and only relevent answer from oracle was: consult README file! Readme file mentions that lobocijdbc.so file is shared library file for oci connection. That't all. So what?
I added the directory where libocijdbc8.so resides to LD_LIBRARY_PATH, and System.getProperty("java.library.path") shows content of LD_LIBRARY_PATH correctly.
nullPlease this is not simple as simple as checking the classpath and LD_LIBRARY_PATH.
I tried the sample program and the result is the same. As pointed out first by Won, putting the libocijdbc8.so from SDK8.1.6 in the LD_LIBRARY_PATH has no effect at all. It gives the unsatisfied linker error. The sample program fails. However the sample program works fine with the libocijdbc8.so from sdk8.1.5. The library gets loaded. But at the time of creating the connection it gives make_c_state error.
Here is my CLASSPATH, PATH and LD_LIBARY_PATH variables
ORACLE_HOME=/opt/oracle/product/8.1.5
LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/opt/oracle/product/8.1.5/lib
PATH=/usr/openwin/bin:/usr/sbin:/usr/local/bin:/usr/ccs/bin:/usr/ucb:/opt/oracle/product/8.1.5/lib
Hope you are able to provide better answer then check your environment variables.
THE libocijdbc8.so FROM SDK8.1.6 DOES NOT GET LOADED AT ALL.
Waiting for the reply.
Please Help.
Regards,
Vipul Modi.
Novell Inc.
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Won, Taewoong([email protected]):
We are running Oracle 8.1.5 on Solaris 7 machine, and our java application running on JDK 1.2 connects to Oracle via JDBC thin driver because we couldn't make jdbc oci driver work.
When we try to connect via oci with the driver originally shipped with 8.1.5, we get:
Exception in thread "main" java.lang.UnsatisfiedLinkError: make_c_state
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:213)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
at java.sql.DriverManager.getConnection(Compiled Code)
at java.sql.DriverManager.getConnection(DriverManager.java:137)
at JDBCTest.main(Compiled Code)
After we downloaded 8.1.6sdk driver from technet and install it, we get:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc8 in java.library.path
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Error.<init>(Error.java:50)
at java.lang.LinkageError.<init>(LinkageError.java:43)
at java.lang.UnsatisfiedLinkError.<init>(UnsatisfiedLinkError.java:42)
at java.lang.ClassLoader.loadLibrary(Compiled Code)
at java.lang.Runtime.loadLibrary0(Runtime.java:471)
at java.lang.System.loadLibrary(System.java:745)
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:209)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
at java.sql.DriverManager.getConnection(Compiled Code)
at java.sql.DriverManager.getConnection(DriverManager.java:137)
at JDBCTest.main(Compiled Code)
I searched this forum for answer and only relevent answer from oracle was: consult README file! Readme file mentions that lobocijdbc.so file is shared library file for oci connection. That't all. So what?
I added the directory where libocijdbc8.so resides to LD_LIBRARY_PATH, and System.getProperty("java.library.path") shows content of LD_LIBRARY_PATH correctly.
<HR></BLOCKQUOTE>
null -
Use jdbc to connect servlet to oracle 8.1.6 database on win2k
The code is below:
package moreservlets;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
/** Simple servlet used to test JDBC connection. */
public class TitleQueries extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Connecting to Database";
DriverManager.registerDriver (new
oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@pc840:1521:orcl", "scott", "tiger");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery
("select ename from emp");
while (rset.next()) {
String name = rset.getString("ename");
out.println(ServletUtilities.headWithTitle(title) +
"<body bgcolor=\"#FDF5E6\">\n" +
"<h1 align=\"center\">" + name + "</h1>\n" +
"</body></html>");
CLASSPATH=.;C:\J2ee;C:\j2sdkee1.3.1\lib\cloudscape;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar;C:\Oracle\Ora81\orb\classes\yoj.jar;C:\Oracle\Ora81\orb\classes\share.zip
My code cannot find the JDBC driver. Any suggestions?
Thanks.
I get the following errors:
C:\J2ee\moreservlets>javac -d "C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\
EB-INF\classes" TitleQueries.java
TitleQueries.java:19: package oracle.jdbc.driver does not exist
oracle.jdbc.driver.OracleDriver());
^
TitleQueries.java:31: cannot resolve symbol
symbol : variable name
location: class moreservlets.TitleQueries
"<h1 align=\"center\">" + name + "</h1>\n" +
^
2 errorsI changed my classpath variable and my servlet
compiles okay with the:
"import oracle.jdbc.driver.*" statement.
However, I still get the following error.
Why can't it find the jdbc driver, since it finds the
import statement?
Apache Tomcat/4.0.3
Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.Oracl
eDriver
WebappClassLoader: Resource '/WEB-INF/classes/moreservlets/ServletUtilities.cl
ass' was modified; Date is now: Tue Jul 02 09:57:26 CDT 2002 Was: Tue Jul 02 09:
37:20 CDT 2002
Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.Oracl
eDriver
CLASSPATH=.;C:\J2ee;C:\j2sdkee1.3.1\lib\cloudscape\RmiJdbc;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar;C:\Oracle\Ora81\jdbc\lib\classes12.zip;C:\Oracle\Ora81\orb\classes\yoj.jar;C:\Program Files\Oracle\JDeveloper 3.2.3\jdbc\lib\oracle8.1.7\classes12.zip;C:\Oracle\Ora81\orb\classes\share.zip
//code begins here
package moreservlets;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import oracle.jdbc.driver.*;
public class TitleQueries extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@pc840:1521:orcl", "scott", "tiger");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery
("select * from emp");
out.println(ServletUtilities.headWithTitle(title) +
"<body bgcolor=\"#FDF5E6\">");
while (rset.next()) {
out.println("<h1 align=\"center\">"
+ rset.getString("ename") + "</h1>\n");
out.println("</body></html>");
catch(ClassNotFoundException cnfe) {
System.err.println("Error loading driver: " + cnfe);
catch(SQLException sqle) {
System.err.println("Error connecting: " + sqle);
} -
Oracle keeping JDBC connections ...
All
has anyone come got any ideas on this:
WLS6.0 sp2 on Win2k
Oracle v8
JDBC connection pool configured with 10 min connections / 50 max conns (in
increments of 5). Shrinking is active, and is set to run every 15mins.
What were seeing is that Oracle doesnt let go of any of the JDBC
connections. It literally keeps them for days on end, until we have to
manually kill them because theyre causing other DB problems.
any ideas ?
tks
willHello, I am using ALUI G6 (former Plumtree) and I am experiencing the same problem.
JDBC connections are not released and we reach the connection max number easily.
Please, can somebody help us ?
Thanks for your help,
Kind regards -
Hi All,
I have been trying to connect to Oracle using a self signed certificate from a simple Java class. I am getting the below error.
main, handling exception: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
main, SEND TLSv1 ALERT: fatal, description = handshake_failure
I have searched many forums but couldnt find the information of my help.
Below are the steps I have followed as per the documentation in wp-oracle-jdbc-thin-ssl-130128.pdf.
First Step: Created a self signed certificate and a truststore with the below commands using JDK 1.6.0_16
Create a Keystore:
keytool -genkey -keyalg RSA -alias MyKey -keystore keystore.jks -validity 360
Extracting the public key:
keytool -export -rfc -alias MyKey -keystore keystore.jks -file public.cert
Creating the Truststore:
keytool -import -alias MyKey -file public.cert -storetype JKS -keystore keystore.truststore
Second Step: Added the following in listener.ora and sqlnet.ora
listerner.ora :
# listener.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
SSL_CLIENT_AUTHENTICATION = FALSE
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = localhost)(PORT = 2484))
ADR_BASE_LISTENER = D:\oracle
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = E:\misc\Secure-jdbc\OracleCertificates)
sqlnet.ora :
# sqlnet.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora
# Generated by Oracle configuration tools.
ENCRYPTION_WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = E:\misc\Secure-jdbc\OracleCertificates)
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS, NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SSL_CLIENT_AUTHENTICATION = FALSE
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = E:\misc\Secure-jdbc\OracleCertificates)
ADR_BASE = D:\oracle\product\11.2.0\dbhome_1\log
Third Step: Created an empty auto logon wallet and added the above created certificate as a Trusted Certificate. (Imported the .cert file into the Trusted Certificates section in Wallet Manager)
Fourth Step: Used the below Java code to connect to the database using the truststore
public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=ORCL11)))"; Properties props = new Properties(); props.setProperty("user", "system"); props.setProperty("password", "oracle"); props.setProperty("javax.net.ssl.trustStore","E:\\misc\\Secure-jdbc\\Keys and Certificates\\keystore.truststore"); props.setProperty("javax.net.ssl.trustStoreType","JKS"); props.setProperty("javax.net.ssl.trustStorePassword","sudhir123#"); Connection conn=DriverManager.getConnection(url,props); System.out.println("conn:"+conn); conn.close(); } catch(Exception e) { e.printStackTrace(); } }
Any help would be appreciated.
Thanks.
Edited by: user10569290 on 20-Feb-2013 22:02Hi EJP,
Please find the below code changes I have done to set the properties as part of System properties instead of Connection properties. I am still getting the same error.
Code:
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=ORCL11)))";
Properties systemProps = System.getProperties();
systemProps.put("javax.net.ssl.trustStore","E:\\misc\\Secure-jdbc\\Keys and Certificates\\keystore.truststore");
systemProps.put("javax.net.ssl.trustStoreType","JKS");
systemProps.put("javax.net.ssl.trustStorePassword","sudhir123#");
System.setProperties(systemProps);
Properties props = new Properties();
props.setProperty("user", "system");
props.setProperty("password", "oracle");
/*props.setProperty("javax.net.ssl.trustStore","E:\\misc\\Secure-jdbc\\Keys and Certificates\\keystore.truststore");
props.setProperty("javax.net.ssl.trustStoreType","JKS");
props.setProperty("javax.net.ssl.trustStorePassword","sudhir123#");
Connection conn=DriverManager.getConnection(url,props);
System.out.println("conn:"+conn);
conn.close();Please find the below output with the SSL debug enabled.
adding as trusted cert:
Subject: CN=Sudhir Reddy, OU=FCDMS, O=3i, L=Hyd, ST=AP, C=IN
Issuer: CN=Sudhir Reddy, OU=FCDMS, O=3i, L=Hyd, ST=AP, C=IN
Algorithm: RSA; Serial number: 0x511e1ebc
Valid from Fri Feb 15 17:10:44 GMT+05:30 2013 until Mon Feb 10 17:10:44 GMT+05:30 2014
trigger seeding of SecureRandom
done seeding SecureRandom
%% No cached client session
*** ClientHello, TLSv1
RandomCookie: GMT: 1361369602 bytes = { 14, 223, 155, 241, 143, 72, 188, 240, 205, 158, 201, 133, 217, 192, 95, 82, 61, 244, 93, 100, 12, 9, 232, 164, 116, 206, 30, 142 }
Session ID: {}
Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA]
Compression Methods: { 0 }
main, WRITE: TLSv1 Handshake, length = 73
main, WRITE: SSLv2 client hello message, length = 98
main, received EOFException: error
main, handling exception: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
main, SEND TLSv1 ALERT: fatal, description = handshake_failure
main, WRITE: TLSv1 Alert, length = 2
main, called closeSocket()
main, called close()
main, called closeInternal(true)
java.sql.SQLRecoverableException: IO Error: Remote host closed connection during handshake
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:466)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:535)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:218)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at SecureJDBC.getSecureConnection(SecureJDBC.java:52)
at SecureJDBC.main(SecureJDBC.java:15)
Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:808)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1096)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
at oracle.net.ns.Packet.send(Packet.java:421)
at oracle.net.ns.ConnectPacket.send(ConnectPacket.java:170)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:302)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1407)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:328)
... 8 more
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:333)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
... 16 more -
I have an application using connection pooling. When the oracle
server it is connected to is rebooted/shut down, the connections
are of course broken. I can detect this fine but when I try to
re-connect to the database with
Connection connection = DriverManager.getConnection(url,
username, password);
the whole program just hangs on that. Seems to me that the JDBC
driver never returns from the call. Is there some timeout I can
set or something else I can do to make it return when the
connection fails? The same code works for other databases and
drivers.
If I try to make a connection to the oracle when I start the
app and no connection has previously been made, the driver
returns correctly saying, no connection or something like that.
I am using oracle 8i with the 1.2 thin drivers (classes12.zip).
Thanks for any help..I have an application using connection pooling. When the oracle
server it is connected to is rebooted/shut down, the connections
are of course broken. I can detect this fine but when I try to
re-connect to the database with
Connection connection = DriverManager.getConnection(url,
username, password);
the whole program just hangs on that. Seems to me that the JDBC
driver never returns from the call. Is there some timeout I can
set or something else I can do to make it return when the
connection fails? The same code works for other databases and
drivers.
If I try to make a connection to the oracle when I start the
app and no connection has previously been made, the driver
returns correctly saying, no connection or something like that.
I am using oracle 8i with the 1.2 thin drivers (classes12.zip).
Thanks for any help.. -
Couldnot connect JBuilder 6 to ORACLE 8i , JDBC driver problem
Hi guys
I am trying to connect to the oracle 8i database from jbuilder 6 using a simple select statement , but it gives the following error
Root cause:
java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver
at _0002ftestEmployee_0002ejsptestEmployee_jsp_1._jspService(_0002ftestEmployee_0002ejsptestEmployee_jsp_1.java:83)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
at org.apache.tomcat.core.Handler.service(Handler.java:287)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:484)
plse help me how to connect jbuilder to oracle to access the data. I followed jbuilder doc like from the menu (Tools �� enterprise setup �� database driver ��)
but could not select the driver since it is marked as red (uninstalled). How can I made jdbc driver to available to jbuilder.?. I am using oracle 8i. Will oracle 8i supports jdk 1.3 b��cos I have noticed the jbuilder supports from jdk 1.3 onwards. So plse correct me if I am wrong
waiting for reply
sumeshthanks for u'r reply.
you mean to say i need to install the new JDBC driver (Classes12.zip and nls_charset12) to the oracle/ora8i/jdbc/lib folder.currently this folder contains only classes102 and classes11.zip files and the corresponding charset only.After instaling the new classes12.zip file do i need to set the classpath?. -
-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.
-
Connecting to Oracle using JDBC
Hi all,
I am a new to Oracle. I am trying to connect to Oracle using JDBC
The URL with which I tried to connect was:
jdbc:oracle:oci8:@myServiceName,user='myLogin',password='myPassword'
I get an error (ORA-12154)
- TNS could not resolve service name
When I use the same userid, password and service and connect thru' SQL*Plus it goes thru'. Is there any parameter which I am missing. Can anyone throw some light on this. I am held up with this issue badly.
Thanks for all your help and time.
Regards,
LathaHi Latha,
Please try to use thin and add port number.
m_conn = DriverManager.getConnection("jdbc:oracle:thin:@" + hostURL + ":" + port + ":" + database, user, password);
Hong
null -
Connecting Oracle by JDBC in Linux
I'm using oracle8.1.7, redhat 7.2,Apache as webserver and tomcat
as containers, all these work very well. but I have a problem
connecting oracle with JDBC.
I've installed the JDBC driver by setting the classpath
in .bash_profile of oracle, but when I run the a jsp which try
to connect the database, it return the exception error which
tell me the suitable driver is not found! Can anyone tell me why?
By the way, I'm using JDK1.3 and the JDBC driver is
classes12.zip. Please help me out.Double Post
http://forum.java.sun.com/thread.jspa?threadID=673989 -
Transaction on Oracle 9i data source connection times out before JTA transaction
Hello,
I have a MDB with a long-running transaction (3600 second timeout).
In the MDB, I make a call to another EJB that has its transaction
attribute set to NotSupported (I do this because I need
non-transactional semantics in the called method).
If the EJB call take more than about a minute to complete, then I get a
datasource error when using the data source in the MDB after the return
(see error at bottom). However, if the call completes quickly, then I do
not get this error. It seems like the datasource connection somehow
times out, but I don't see where I can change this timeout.
pseudocode:
// timeout set to 3600 seconds
transactional MDB onMessage() {
// receive connection from Oracle BEA driver
// myEJB performLongOperation has transaction attribute
// set to NotSupported
String result = myEJB.performLongOperation();
// use connection from Oracle BEA driver
If the performLongOperation takes more than about a minute, then I get
the following error when using the connection after the operation:
Caused by: java.sql.SQLException: XA error: XAER_NOTA : The XID is not
valid start() failed on resource 'Oracle IDENT Connection Pool':
XAER_NOTA : The XID is not valid
javax.transaction.xa.XAException: [BEA][Oracle JDBC Driver]Oracle XA
Error Occurred. Native Error: 24756
at
weblogic.jdbcx.oracle.OracleImplXAResource.checkError(Unknown Source)
at weblogic.jdbcx.oracle.OracleImplXAResource.start(Unknown Source)
at weblogic.jdbcx.base.BaseXAResource.start(Unknown Source)
at weblogic.jdbc.jta.DataSource.start(DataSource.java:617)
at
weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
urceInfo.java:1075)
at
weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
sourceInfo.java:1007)
at
weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
ourceInfo.java:218)
at
weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
rverTransactionImpl.java:419)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1287)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
250)
at
weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAConnection.java:185)
at
weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.jav
a:80)
at
weblogic.jdbc.wrapper.Connection.createStatement(Connection.java:297)Thanks for the reply.
I don't have contract customer support access with BEA, and thus I can't
download the patch. Is there any other workaround for this?
Thanks
Slava Imeshev wrote:
Steven,
Please check this:
http://www.viewtier.com/newsgroups/thread.jspa?threadID=20&tstart=0
Hope this helps.
Regards,
Slava Imeshev
"Steven Ostrowski" <[email protected]> wrote in message news:40cf35cc@mktnews1...
I have a MDB with a long-running transaction (3600 second timeout).
In the MDB, I make a call to another EJB that has its transaction
attribute set to NotSupported (I do this because I need
non-transactional semantics in the called method).
If the EJB call take more than about a minute to complete, then I get a
datasource error when using the data source in the MDB after the return
(see error at bottom). However, if the call completes quickly, then I do
not get this error. It seems like the datasource connection somehow
times out, but I don't see where I can change this timeout.
pseudocode:
// timeout set to 3600 seconds
transactional MDB onMessage() {
// receive connection from Oracle BEA driver
// myEJB performLongOperation has transaction attribute
// set to NotSupported
String result = myEJB.performLongOperation();
// use connection from Oracle BEA driver
If the performLongOperation takes more than about a minute, then I get
the following error when using the connection after the operation:
Caused by: java.sql.SQLException: XA error: XAER_NOTA : The XID is not
valid start() failed on resource 'Oracle IDENT Connection Pool':
XAER_NOTA : The XID is not valid
javax.transaction.xa.XAException: [BEA][Oracle JDBC Driver]Oracle XA
Error Occurred. Native Error: 24756
at
weblogic.jdbcx.oracle.OracleImplXAResource.checkError(Unknown Source)
at weblogic.jdbcx.oracle.OracleImplXAResource.start(Unknown Source)
at weblogic.jdbcx.base.BaseXAResource.start(Unknown Source)
at weblogic.jdbc.jta.DataSource.start(DataSource.java:617)
at
weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
urceInfo.java:1075)
at
weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
sourceInfo.java:1007)
at
weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
ourceInfo.java:218)
at
weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
rverTransactionImpl.java:419)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1287)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
250)
at
weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAConnection.java:185)
at
weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.jav
a:80)
at
weblogic.jdbc.wrapper.Connection.createStatement(Connection.java:297) -
JDBC-ODBC connectivity problem
hi ,i have a j2se 1.4.2 version installed on windows 2000 professional.i have j2me wireless toolkit 2.0,Oracle 8i(8.1.5),tomcat 4.0 running on system.I have tried to connect to the database in Oracle through JDBC-ODBC bridge but it becomes non-responsive.The same has been working well with Oracle 9i versions and also in Oracle 8i when ODBC driver is selected as Microsoft ODBC drivers for Oracle but not with Oracle drivers for Oracle.Can anybody tell me the compatibilities of JDBC-ODBC bridge versions,oracle and ODBC drivers? And can u tell me how to connect to oracle through a pure Java JDBC drivers on a standalone system?
well,i think nobody has interest in my question.I have asked two questions.
1)Can anybody tell me the compatibilities of JDBC-ODBC bridge versions,oracle and ODBC drivers?
2)And can u tell me how to connect to oracle through a pure Java JDBC drivers (type 4 drivers) on a standalone system?
But u advise me not to use JDBC-ODBC bridge without studying the other part. -
Oracle 11.2 client connecting to Oracle 10.2 databases
I have an application which currently uses 10.2.0.4 Oracle Client to connect to Oracle 10.2 databases using java (jdbc).
Now I have to do setup on another linux server and looking into whether I can use 11.2 Oracle clinet avaiable on tcehnet.oracle.com to connect to
10.2 databases. I will be using jdbc for connectivity.Maybe showing my ignorance here, but doesn't the application itself have to be written to use the jdbc thin driver?
That would not be typical. A Java application will normally be modular as regards DB connections.
1. The app itself will be written to take an instance of the 'Connection' interface
http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html
2. The actual 'Connection' instance will be created by a factory method or other application independent code at startup and then passed to the application code.
Just like TNSNAMES.ORA contains the parameters for OCI connections an application will normally use a config file and/or command-line parameters for the JDBC connection parameters.
Naturally, just like everything else, developers can always screw things up by hard coding values. Nothing you can do about that.
See the 'Database URLs and Database Specifiers' section of the JDBC dev guide
http://docs.oracle.com/cd/E11882_01/java.112/e16548/urls.htm#BEIJFHHB
Database URLs are strings. The complete URL syntax is:
jdbc:oracle:driver_type:[username/password]@database_specifier
Note:
The brackets indicate that the username/password pair is optional.
kprb, the internal server-side driver, uses an implicit connection. Database URLs for the server-side driver end after the driver_type.
The first part of the URL specifies which JDBC driver is to be used. The supported driver_type values are thin, oci, and kprb.
The remainder of the URL contains an optional user name and password separated by a slash, an @, and the
database specifier, which uniquely identifies the database to which the application is connected. Some database specifiers are valid only for the JDBC Thin driver, some only for the JDBC OCI driver, and some for both.
Then there are examples of each driver type in 'Table 8-3 Supported Database Specifiers'
Thin: "jdbc:oracle:thin:scott/tiger@//myhost:1521/myservicename"
See that table 8-3 for the different OCI options.
Maybe you are looking for
-
Can there be multiple contributors on a single course?
We are wondering if there can be more than one instructor on a course. Any thoughts?
-
I am trying to re-install Photoshop CS6. The files have downloaded but I get and error message that the Adobe Support Advisor is required to determine what the installation probIem is. I click on the link that says "get the Support Advisor here only
-
how to do picture in picture
-
Detecting the end of an flv in ac 2
I have a custom player i built. How do i detect the end of the flv so i can prompt an action, like go to another frame for instance or loop or call another flv. Have been struggling to find a solution online and keep hitting dead ends.. Thanks in adv
-
Time/Date Field Not Returned in PDF
I have created a very simple form in LiveCycle Designer 8.0. The form enables the user to input data into columns labeled "name," "change type," and "change date." I used the date/time object for the "change date" row fields. When my testers (using A