Bug in TNS Parser of ojdbc14.jar

Hi,
we recently had problems with two customers using ojdbc14.jar in association with tnsnames.ora. The following exception was thrown:
java.lang.ArrayIndexOutOfBoundsException : Array index out of range: 148
oracle.net.nl.NVTokens.parseTokens(Unknown Source)
oracle.net.nl.NVFactory.createNVPair(Unknown Source)
oracle.net.nl.NLParamParser.addNLPListElement(Unknown Source)
oracle.net.nl.NLParamParser.initializeNlpa(Unknown Source)
oracle.net.nl.NLParamParser.<init>(Unknown Source)
oracle.net.resolver.TNSNamesNamingAdapter.loadFile(Unknown Source)
oracle.net.resolver.TNSNamesNamingAdapter.checkAndReload(Unknown Source)
oracle.net.resolver.TNSNamesNamingAdapter.resolve(Unknown Source)
oracle.net.resolver.NameResolver.resolveName(Unknown Source)
oracle.net.resolver.AddrResolution.resolveAndExecute(Unknown Source)
oracle.net.ns.NSProtocol.establishConnection(Unknown Source)
oracle.net.ns.NSProtocol.connect(Unknown Source)
oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:858)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:268)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
I checked with JAD what's wrong in that NVTokens class and found the following code fragment:
public boolean parseTokens(String s)
_numTokens = 0;
_tkPos = 0;
_tkType = new Vector(25, 25);
_tkValue = new Vector(25, 25);
int i = s.length();
char ac[] = s.toCharArray();
int j = 0;
do
if(j >= i)
break;
for(; j < i && _isWhiteSpace(ac[j]); j++);
switch(ac[j])
case 40: // '('
as you can see, the whitespace-eating for loop could loop until j == i, and then the switch(ac[j]) would cause a ArrayIndexOutOfBoundsException.
The tnsnames.ora which led to the exception all had an entry of the form:
ORCL.WORLD =
(DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.30.40)(PORT = 1521))
  (CONNECT_DATA =
   (SID = ORCL)
It was sufficient to insert a blank before the "(DESCRIPTION =" token to prevent the parser from running into the bug. However, if we have to instruct all our customers how and where to insert blanks in their tnsnames.ora, it will get a bit annoying.
I downloaded the latest 1.4 driver version (the used driver was about 3 years old, so I was hoping the bug was corrected in the meantime), but the bug was present there, too.
So please, if any Oracle personnel read this thread, report this to your jdbc driver developers, and hopefully there will be a bug fix in the future.
Best regards,
Hans Vetter
Edited by: user1649592 on Jun 23, 2010 1:11 AM
Edited by: user1649592 on Jun 23, 2010 1:11 AM

Hi,
To supplement my last post, I only get the ArrayIndexOutOfBoundsException on a 64-bit Windows Server 2008 machine. When I run 32-bint Windows Server 2008, the exception does not occur and the database connection works fine. Has this problem been fixed for 64 bit machines ? Or is there something additional that needs to be configured for 64 bit machines ?
Thanks,
Tom Vicker

Similar Messages

  • Ojdbc6.jar ojdbc14.jar anamoly and a bug

    PROGRAM
    PreparedStatement ps = connection.prepareStatement( "select dob from pers", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    ResultSet.getString("dob");
    Output:
    ojdbc14.jar:
    *6/1/2012 0:0:0*
    ojdbc6.jar:
    *2001-06-01 00:00:00*
    Why the difference? Is this a bug? Is there a fix? I require ojdbc6 output to be the same as ojdbc14. How can I achieve that? (Yes, I know its good to use ResultSet.getDate(...) instead of ResultSet.getString(...) etc etc but this is legacy code and there are too many occurrences for me to change all of them.)
    Edited by: 935389 on May 18, 2012 3:51 PM

    1. Get a Timestamp instead of a string.
    2. Format the string in SQL and stop relying on the JDBC to do it.I quote again from my first post,
    (Yes, I know its good to use ResultSet.getDate(...) instead of ResultSet.getString(...) etc etc but this is legacy code and there are too many occurrences for me to change all of them.)
    No. Both values are correct they are just formatted differently. And the spec says nothing about how it formats strings.Java ResultSet API does not say anything about the format but this was not caused by Java6. It was ojdbc6.jar.
    Also, the result is the same if I don't use,
    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLEIt is not good to simply change format even though Oracle JDBC didn't specify any format either. Does this mean I'll have to test everything that is not specified in their spec? It is a bug.
    Edited by: 935389 on May 20, 2012 5:21 PM

  • Ojdbc14.jar connect to 10g so slow with JRE1.5.0_05

    Our guests complained the speed is so slow that they can not stand up with this...
    So I run the tests base on JRE1.5.0_05 and ojdbc14.jar and Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    try {
                        Class.forName("oracle.jdbc.driver.OracleDriver");
                        String url = "jdbc:oracle:thin:@//host:1521/orcl";
                        Date now = new Date();
                        Connection conn = DriverManager.getConnection(url, "user",
                                  "password");
                        System.out.println(System.currentTimeMillis() - now.getTime());
                        conn.setAutoCommit(false);
                        Statement stmt = conn.createStatement();
                        ResultSet rset = stmt
                                  .executeQuery("select BANNER from SYS.V_$VERSION");
                        while (rset.next()) {
                             System.out.println(rset.getString(1));
                        stmt.close();
                        System.out.println("Ok.");
                   } catch (Exception ex) {
                        ex.printStackTrace();
    The output is :
    4875
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE     10.2.0.1.0     Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    Ok.
    the statement Connection conn = DriverManager.getConnection(url, "user", "password") execution time is 4875 milliseconds!!!!!
    so i switched to 9i the output is:
    0
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    PL/SQL Release 9.2.0.1.0 - Production
    CORE     9.2.0.1.0     Production
    TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
    NLSRTL Version 9.2.0.1.0 - Production
    Ok.
    I change the JDK version to 1.4 or 1.6 the execution time is also 0.
    I walk through the internet and finally found the solution:
    ProxySelector.setDefault(null);
    But i am still confused when it come to the same environment the same code to connect to the 9i,10g, the getConnection() method execution time is so different without the statement ProxySelector.setDefault(null). so I suspect that this is an issue to 10g not the JDK1.5.x.
    Edited by: user12084131 on 2010-9-20 上午1:46
    Edited by: user12084131 on 2010-9-20 上午1:47

    Thanks for the reply,
    One correction to the above <Corrected now in my original post>
    Its connecting to " com.bea:ServerRuntime=managed03,Name=managed03,Type=JRockitRuntime"
    Tried with previous version again, it works perfect. But i still have issue with new JRE version.
    Regards,
    Rana
    Edited by: user13387204 on 02-Oct-2010 19:01

  • How to use two different ojdbc14.jar for two web application.

    Hi,
    I have two web application running in same tomcat, I need to use the two different ojdbc14.jar for two application, now both are taking the jars from tomcat common/lib directory, I tried copying the new ojdbc14.jar in web-inf/lib folder of one application, but it is not working.
    Could you please let me know whether this will take the jar from tomcat by befault or from web-inf, and a solution how to proceed with this.
    Thanks in advance.

    Yes, I tried removing the jars from common/lib, but as the connection string is mentioned inside the server.xml it is showing db connection error while trying to connect to the database

  • Performance problem with ojdbc14.jar

    Hi,
    We are having performance problem with ojdbc14.jar in selecting and updating (batch updates) entries in a table. The queries are taking minutes to execute. The same java code works fine with classes12.zip ans queries taking sub seconds to execute.
    We have Oracle 9.2.0.5 Database Server and I have downloaded the ojdbc14.jar from Oracle site for the same. Tried executing the java code from windows 2000, Sun Solaris and Opteron machines and having the same problem.
    Does any one know a solution to this problem? I also tried ojdbc14.jar meant for Oracle 10g, that did not help.
    Please help.
    Thanks
    Yuva

    My code is doing some thing which might be working well with classes12.zip and which does not work well with ojdbc14.jar? Any general suggestions to make the code better, especially for batch updates.
    But for selecting a row from the table, I am using index columns in the where cluase. In the code using PreparedStatement, setting all the reuired fields. Here is the code. We have a huge index with 14 fields!!. All the parameters are for where clause.
    if(longCallPStmt == null) {
    longCallPStmt = conn.prepareStatement(longCallQuery);
    log(Level.FINE, "CdrAggLoader: Loading tcdragg entry for "
    +GeneralUtility.formatDate(cdrAgg.time_hour, "MM/dd/yy HH"));
    longCallPStmt.clearParameters();
    longCallPStmt.setInt(1, cdrAgg.iintrunkgroupid);
    longCallPStmt.setInt(2, cdrAgg.iouttrunkgroupid);
    longCallPStmt.setInt(3, cdrAgg.iintrunkgroupnumber);
    longCallPStmt.setInt(4, cdrAgg.iouttrunkgroupnumber);
    longCallPStmt.setInt(5, cdrAgg.istateregionid);
    longCallPStmt.setTimestamp(6, cdrAgg.time_hour);
    longCallPStmt.setInt(7, cdrAgg.icalltreatmentcode);
    longCallPStmt.setInt(8, cdrAgg.icompletioncode);
    longCallPStmt.setInt(9, cdrAgg.bcallcompleted);
    longCallPStmt.setInt(10, cdrAgg.itodid);
    longCallPStmt.setInt(11, cdrAgg.iasktodid);
    longCallPStmt.setInt(12, cdrAgg.ibidtodid);
    longCallPStmt.setInt(13, cdrAgg.iaskzoneid);
    longCallPStmt.setInt(14, cdrAgg.ibidzoneid);
    rs = longCallPStmt.executeQuery();
    if(rs.next()) {
    cdr_agg = new CdrAgg(
    rs.getInt(1),
    rs.getInt(2),
    rs.getInt(3),
    rs.getInt(4),
    rs.getInt(5),
    rs.getTimestamp(6),
    rs.getInt(7),
    rs.getInt(8),
    rs.getInt(9),
    rs.getInt(10),
    rs.getInt(11),
    rs.getInt(12),
    rs.getInt(13),
    rs.getInt(14),
    rs.getInt(15),
    rs.getInt(16)
    }//if
    end_time = System.currentTimeMillis();
    log(Level.INFO, "CdrAggLoader: Loaded "+((cdr_agg==null)?0:1) + " "
    + GeneralUtility.formatDate(cdrAgg.time_hour, "MM/dd/yy HH")
    +" tcdragg entry in "+(end_time - start_time)+" msecs");
    } finally {
    GeneralUtility.closeResultSet(rs);
    GeneralUtility.closeStatement(pstmt);
    Why that code works well for classes12.zip (comes back in around 10 msec) and not for ojdbc14.jar (comes back in 6-7 minutes)?
    Please advise.

  • Problem with ojdbc14.jar (oracle10g Rel. 2 driver) in updating a BLOB field

    Hello All,
    Our web application uses oracle10g Release 2 jdbc driver with websphere 5.1.1.4 and oracle 9i. When it tries to update a BLOB field in the database updation is successful but it is updating that field with a null value. So rest of our application fails as this value is becoming null. We use an entity bean to update this table and websphere uses a prepared statement to update this table. Just before setting this BLOB field using setBinaryStream() on prepared statement I am printing to see whether it is null or not as shown in the code snippet below. And it is printing it correctly as non null. But after execution of the prepared statement some how the value stored in database is null.
    Is this a known issue with this driver? Does any one know work around or a solution to this? We have 3 BLOB fields in that table. Is that a problem? If we separate these BLOB fields into separate tables will the problem be solved? Any input on this is very much appreciated.
    // For column ORIGINAL_CONTENT
    byte[] tempbyteArray;
    tempbyteArray=(byte[])inputRecord.get(25);
    if (tempbyteArray == null) {
    System.out.println("DqPageBeanFunctionSet_f9c724af: tempbyteArray NULLLLLLL");
    } else {
    System.out.println("DqPageBeanFunctionSet_f9c724af: orig tempbyteArray length: " + tempbyteArray.length);
    if(tempbyteArray != null) {
    pstmt.setBinaryStream(25,new java.io.ByteArrayInputStream(tempbyteArray),tempbyteArray.length);
    else pstmt.setNull(25,java.sql.Types.BLOB);
    Thanks & Regards,
    -Sunitha

    I have similar problem and I solved it using ojdbc14.jar oracle9i version.
    try...

  • Oracle Type4 driver (ojdbc14.jar) connection proble

    Hi,
    I'm trying to connect to my oracle 8i installed in my local machine through type4 driver.
    I've downloaded ojdbc14.jar and included its path to classpath
    The following lines are included in my code
    Class.forName("oracle.jdbc.OracleDriver");
    cn = DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@localhost:1521:dbmsConnect ")
    I've created the DSN as follows (in Windows XP)
    Control Panel - Administrative Tools - Data Sources - Add - Took Oracle ODBC Driver - entered DSN name as dbmsConnect -added user id as scott
    When I ran the code, Igot following exception
    Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135286784)(ERR=12505)
    (ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
    Could anyone help me please

    You may need a later version of the driver:
    http://www.dbforums.com/showthread.php?t=971271
    Pl. also see:
    http://forum.java.sun.com/thread.jspa?threadID=563288&messageID=2773243
    http://forum.java.sun.com/thread.jspa?threadID=300137&messageID=1189780

  • How do I install the "ojdbc14.jar" driver?

    Hi...
    I want to start with JDBC APIs. I have downloaded the Oracle driver "ojdbc14.jar". I don't know where to keep this driver and what all settings need to be done.
    Can any one help?
    Thanks...

    Are you by any chance new to Java?
    If not, then where you put the jar depends on the type of application you are building.
    For example, I build a lot of web applications which are deployed as WAR files to an app server. In this case, I usually put the ojdbc.jar in the WEB-INF/lib. You can also put the jar in common/lib of the app server so that all apps have access to it.
    Use of the system environment variable CLASSPATH is not used so much anymore with recent JDKs.
    If you are new to Java then I recommend choosing a decent IDE (Eclipse/NetBeans/JDeveloper are the main free ones) and going through the Java tutorial. It has a section on using JDBC.
    Hope that helps,
    Rakesh

  • Which ojdbc14.jar JDBC driver to use for Oracle 10g database

    When ODI is installed there seems to be an Oralce JDBC driver in place in the drivers folder (ojdbc14.jar).
    When we connect to an Oracle datastore and point to a table and use the 'reverse' function to populate the columns - it sort of works OK but does not bring back the datatypes properly. This is found to be when the Oracle table has UNICODE character datatypes NCHAR and NVARCHAR. If a table has CHAR and VARCHAR it is all OK but any table that has UNICODE datatyoe has a problem.
    Is this likely to be the JDBC driver ?
    We have tried replacing this ojdbc14.jar with the older classes12 and this, as expected, did not resolve the issue.
    We then tried replacing it with the latest 10.2.0.4 ojdbc14.jar but again no difference.
    Does anyone have any experience with Oracle JDBC drivers and what release level to use - and using against UNICODE datatypes in tables ?
    Regards

    Our problem is that when we use 'reverse' to populate the columns from a physicla table in an Oracle database - ODI is obviously 'seeing' the ORacle table and is correctly understanding the columns in the table and defining them in it's model - but wherever there is a column with a datatype in the ORacle database of NCHAR or NVARCHAR it fails to populate the datatype or the 'length' of these columns. If I manually try to specify the datatype these 2 unicode data types do NOT exist in the pull down list of datatypes.
    I see what you are asking - if these datatypes are actually defined as datatypes within the actual technology - I cant access my lab right now but will check as soon as I can. Thanks for the suggestion.

  • Pointing portal server from classes12.jar to ojdbc14.jar JDBC driver

    Hi,
         Some time ago we upgraded our portal landscape from Oracle 9.2.0.7 to Oracle 10.2.0.2. Using OSS Notes 867176 and 915079, we pointed our portal servers to use the newer and recommended ojdbc14.jar driver. This included using Config manager to  change the rdbms.driverLocation parameter to point to the new driver.
         A few months later (last week), thinking that we had our bases covered, we removed the old ORACLE_HOME, /oracle/<SID>/920_32. Upon restarting the portal we got quite a shock- it would NOT come up! The first problem was the bootstrap.properties in the /usr/sap/<SID>/JC00/j2ee/cluster/bootstrap directory which had the same dbms.driverLocation parameter pointed to the old driver in the old ORACLE_HOME. After correcting this, we ran into further problems with neither the dispatcher or the servers (2 per system) coming up. Find this curious, we ran the following unix  commands and identified more *.properties files with the same rdbms.driverLocation parameter-
    cd /usr/sap/<SID>/JC00/j2ee
    find . -name '*.properties' -exec grep -H 920_32 {} \;
    ./deploying/rdb.properties -
                rdbms.driverLocation=/usr/sap/EPP/JC00/j2ee/classes12.jar
    ./cluster/server0/cfg/kernel/ConfigurationManager.properties -
                rdbms.driverLocation=/usr/sap/EPP/JC00/j2ee/classes12.jar
    ./cluster/server0/cfg/kernel/ConfigurationManager.properties -
                rdbms.driverLocation=/usr/sap/EPP/JC00/j2ee/classes12.jar
    ./cluster/dispatcher/cfg/kernel/ConfigurationManager.properties -
                rdbms.driverLocation=/usr/sap/EPP/JC00/j2ee/classes12.jar
    ./templateconfigurator.properties -
               $=/usr/sap/EPP/JC00/j2ee/classes12.jar
    We then proceeded to manually edit each of the files to use the newer ojdbc14.jar driver. Surprisingly, it turns out that editing the ConfigurationManager properties files for the 2 servers and the dispatcher had no effect- upon recycling the portal the entire cfg/kernel directory gets wiped out and replaced.
    So what's the problem here? I don't have an issue with directories being recreated- but why is the ojdbc14.jar driver setting not being picked up from the change made for each server and dispatcher in the Configuration Manager?   I have examined all the services listed in the Configuration Manager and the Visual Administrator and can find no more references to the old ORACLE_HOME.
    Oh, incidently, curiously enough, for single portal systems, the JDBC driver is obtained from the /oracle/<SID>/102_64/jdbc/lib directory and not from the /usr/sap/<SID>/JC00/j2ee directory which is the case for portal servers involving more than 1 server.
    Hoping for help here ...
    Sincerely,
    Steven McElwee, Duke University

    right click ur project and select properties. In Java Build Path add the ojdbc14.jar in the librariies tab.
    http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.html
    Edited by: user7361177 on Aug 1, 2009 10:19 PM

  • Usage of java.sql.Timestamp with classes12.zip and ojdbc14.jar  ?

    Hi all,
    If i'm using java.sql.Timestamp with classes12 it is functioning perfectly,
    if i'm using ojdbc14 and java.sql.Timestamp it is functioning in different way and failing to do the action..
    Example : update set xxx=yy where time = my Timestamp object set in Prepared statement
    Hope to see the answer

    http://forum.java.sun.com/thread.jspa?threadID=460615&messageID=2116517
    Timestamp insert problem
    Using the "classes12.zip" file that comes with the distribution for Oracle versions 8.1.6.x and 8.1.7.x, Oracle's DATE datatype is mapped to the "java.sql.Timestamp" class. However, the "ojdbc14.jar" driver maps DATE to "java.sql.Date", and "java.sql.Date" only holds a date (without a time), whereas "java.sql.Timestamp" holds both a date and a time.

  • How to use both ojdbc14.jar and ojdbc6.jar in same weblogic domain(weblogic12C)

    Hi all,
    I 'm having issue of using both ojdbc14.jar and ojdbc6.jar in same weblogic application and same weblogic domain in weblogic 12C environment.
    how can i do that?
    i'm currently having application developed using jdk 1.6 and ojdbc6.jar, application developed using jdk 1.4 and ojdbc14.jar.both are currently installed at same domain.
    i want to use the both ojdbc14.jar and ojdbc6.jar in same domain.
    what i previously did was renaming /usr/weblogic/wls_server10.3.4/lib/ojdbc6.jar to /usr/weblogic/wls_server10.3.4/lib/ojdbc6.jar.bak and put ojdbc14.jar in the same path when i wanna use ojdbc14.jar.
    i haven't use both in same environment before, but to go live i wanna match about requirement.pls help.
    i know the way use this by having two domains, but in the same domain i could not find a solution yet.
    Please help

    Hey
    I have the similar requirement.. Did you managed to get an option of doing it? If yes, please provide some insights
    Thanks in Advance

  • Xdb.jar and ojdbc14.jar incompatibility ( XMLType.createXML() ) ??

    I am using the latest xdb.jar (from xdk_java_9_2_0_5_0.zip) and ojdbc14.jar
    and it appears that xdb.jar calls a method that does not exist in ojdbc14.jar.
    It happens when executing
    OPAQUE opaque = rset.getOPAQUE("value");
    XMLType xt = XMLType.createXML(opaque); // <-- here
    The exact error message is:
    java.lang.NoSuchMethodError: oracle.jdbc.internal.OracleConnection.getProtocolType()Ljava/lang/String;
         at oracle.xdb.XMLType.initConn(XMLType.java:2072)
         at oracle.xdb.XMLType.<init>(XMLType.java:903)
         at oracle.xdb.XMLType.createXML(XMLType.java:493)

    Hi,
    There are known problems with xdb.jat that is bundled with XDK 9205.
    As a workaround, you need to use an older version of xdb.jar from either XDK-9.2.0.3 or XDK-9.2.0.4 since the mentioned exception is generally thrown due to problems in xdb.jar that comes with XDK-9205.
    If you do not have any of these versions of XDK, you could use the xdb.jar that comes with the database 9.2.0.3. The xdb.jar is present in <oracle_home>/rdbms/jlib folder.
    Hope that helps.
    Shefali

  • Ojdbc14.jar API and Oracle Database Version

    Hi
    Im using ojdbc14.jar for accessing an oracle 10G database.
    Im trying to troubleshoot an exception -
    java.sql.SQLException: Parameter Type Conflict
    that seems to get thrown by the method -
    OraclePreparedStatament.processCompletedBindRow
    I have a couple of questions:
    1. Is the documentation/source available for ojdbc14.jar in order that I can try and find out what this method is supposed to be doing?
    2. Also, can anyone confirm if the jar Im using is the correct version of drivers for accessing a 10G database?
    3. When I go to the JDBC support center at Oracle(http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/index.html) any support documentation/APIs refer only to the Oracle db version and dont mention Java versions. Im using ojdbc14.jar which I guess is for use with Java version 1.4 onwards - how does this relate to the Oracle database versions?
    Thnaks very much in advance to anyone who can give me any suggestions on the above. This issue has stumped me for days now. Ive checked and double checked my code, and the Oracle Java types I have generated from the database, and they all seem to be fine.
    Jon

    unzip it, and look at the MANIFEST.MF file in META-INF
    If you do not know the version, you can just download appropriate one from oracle site.
    http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

  • Non supported character set with ojdbc14.jar

    Hi.
    I have an application that uses JMS/AQ and works great under JDK1.4 and with libraries:
    -classes12.jar
    -nls_charset12.jar
    I looked at the oracle web site that says you should use the new JDBC drivers(ojdbc14.jar) but I fail to get it working. I keep getting;
    oracle.jms.AQjmsException: Non supported character set: oracle-character-set-178
    at oracle.jms.AQjmsSession.addDurableSubscriber(AQjmsSession.java:2616)
    at oracle.jms.AQjmsSession.createDurableSubscriber(AQjmsSession.java:2124)
    at oracle.jms.AQjmsSession.createDurableSubscriber(AQjmsSession.java:1872)
    at prevision.socketserver.JMSThread.checkForNewAlarms(JMSThread.java:84)
    Any help would be greatly appreciated!
    Best regards,
    Christer Nordvik

    hi Christer,
    I have looked at the drivers download page at:http://otn.oracle.com/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html and there isn't any nls_charset12.jar for JDK1.4. I've tried using the one with JDK1.3
    There isn't any nls_charset12.jar for 1.4, its the one that comes with 1.3, just wanted to check it you are using the latest version of nls_charset12.jar
    BTW are you running this program from command-line or app server ? Incase of app server the latest jar's must be replaced in oc4j_home/jdbc/lib dir.
    Elango.

Maybe you are looking for