Ms Access problems with Jdbc Odbc!!!
Hi again people,
Im creating a GUI swing project connecting a database (MsAccess) to a dialog using the bridge driver,
The GUI is coming up but im getting runtime errors and the data does not go to the fields, the dialog and connection are in two files:
import java.awt.*;
import java.awt.event.*;
import java.sql.*; //SQL package for the statements
import javax.swing.*;
class DatabaseMan
public ResultSet m_resultSet; //recordset resulting from SQL query
public ResultSetMetaData m_rsmd; //used to get general info about the columns
private int m_nNumberOfFields; //number of fields in a recordset
private Connection conn;
private Statement stmt;
public DatabaseMan(String strSQLQuery)
try
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try //establish connection to the database
//try to get connection to the database
conn = DriverManager.getConnection("jdbc:odbc:db1");
//this is not where we update the database so we make it read only
stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
m_resultSet = stmt.executeQuery(strSQLQuery);
catch(SQLException exSQL)
System.err.println("\n\n\t\t ***SQLException has" +
"been caught ***\n\n");
while ( exSQL != null)
System.err.println("\nSQLState : " + exSQL.getSQLState() );
System.err.println("\nMessage : " + exSQL.getMessage() );
System.err.println("\nVendor code : "+ exSQL.getErrorCode() );
System.err.println("\n");
exSQL = exSQL.getNextException();
catch( ClassNotFoundException e)
System.err.print("\n\n\tClassNotFoundException has"
+" been caught");
System.err.println( e.getMessage());
catch( java.lang.Exception ex )
ex.printStackTrace();
public void CloseConnection() //close connection to database
try
conn.close();
stmt.close();
m_resultSet.close(); //release the resources
catch (SQLException exSQL )
System.out.println("SQL Exception: " + exSQL.getMessage());
exSQL.printStackTrace(System.out);
public int getNoFields()
return m_nNumberOfFields;
} //end of DatabaseMan.java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import DatabaseMan;
import javax.swing.*;
class DBviewer extends JDialog implements ActionListener
//JButtons to create toolbar
private JButton m_buttonFirst;
private JButton m_buttonNext;
private JButton m_buttonPrevious;
private JButton m_buttonLast;
private JButton m_buttonClose;
private JButton m_mainbuttonClose;
//textfields to transfer the data from database
private JTextField m_name;
private JTextField m_age;
private JTextField m_weight;
private JTextField m_professionalism;
private JTextField m_speed;
private JTextField m_acceleration;
private JTextField m_jump;
private JTextField m_stamina;
private JTextField m_bravery;
private JTextField m_fitness;
private JTextField m_experience;
//labels to identify the textfields
private JLabel m_labelname;
private JLabel m_labelage;
private JLabel m_labelweight;
private JLabel m_labelspeed;
private JLabel m_labelacceleration;
private JLabel m_labelprofessionalism;
private JLabel m_labeljump;
private JLabel m_labelstamina;
private JLabel m_labelbravery;
private JLabel m_labelfitness;
private JLabel m_labelexperience;
DatabaseMan m_DatabaseMan;
private String strSQLQuery1;
private String type1 = new String("");
public DBviewer(Frame parent, String caption, boolean bModal, String type)
super(parent,caption,true);
setSize(600,400);
setLocation( new Point(150 , 150 )); //position it pops up on screen.
setResizable(false);
strSQLQuery1 = new String("");
type1 = type;
//SQL query to show the horse database
if(type =="Horse")
strSQLQuery1 ="SELECT *" +
"FROM HORSE";
buildHorseGUI();
if(type =="Jockey")
strSQLQuery1 ="SELECT *" +
"FROM JOCKEY"+
" ORDER BY NAME";
buildJockeyGUI();
if(type =="Course")
strSQLQuery1 ="SELECT *" +
"FROM RACECOURSE"+
" ORDER BY NAME";
buildCourseGUI();
m_DatabaseMan = new DatabaseMan(strSQLQuery1);
/*try
{//reset values with default move up to top later
if(m_DatabaseMan.m_resultSet.first())
transferData(type1);
catch( SQLException exSQL)
System.out.println("SQL Exception: " + exSQL.getMessage());
exSQL.printStackTrace(System.out);
public void buildHorseGUI() //construct the horse GUI
buildDefaultGUI(); //build default buttons and toolbar
m_labelname = new JLabel(" Horse Name:",JLabel.CENTER);
m_labelname.setBackground(Color.blue);
m_labelname.setForeground(Color.white);
m_labelage = new JLabel("Age: ",JLabel.CENTER);
m_labelage.setBackground(Color.blue);
m_labelage.setForeground(Color.white);
m_labelweight = new JLabel("Weight(p): ",JLabel.CENTER);
m_labelweight.setBackground(Color.blue);
m_labelweight.setForeground(Color.white);
m_labelspeed = new JLabel("Speed:",JLabel.CENTER);
m_labelspeed.setBackground(Color.blue);
m_labelspeed.setForeground(Color.white);
m_labelacceleration = new JLabel("Acceleration:",JLabel.CENTER);
m_labelacceleration.setBackground(Color.blue);
m_labelacceleration.setForeground(Color.white);
m_labelprofessionalism = new JLabel("Professionalism:",JLabel.CENTER);
m_labelprofessionalism.setBackground(Color.blue);
m_labelprofessionalism.setForeground(Color.white);
m_labeljump = new JLabel("Jump:",JLabel.CENTER);
m_labeljump.setBackground(Color.blue);
m_labeljump.setForeground(Color.white);
m_labelstamina = new JLabel("Stamina:",JLabel.CENTER);
m_labelstamina.setBackground(Color.blue);
m_labelstamina.setForeground(Color.white);
m_labelbravery = new JLabel("Bravery:",JLabel.CENTER);
m_labelbravery.setBackground(Color.blue);
m_labelbravery.setForeground(Color.white);
m_labelfitness = new JLabel("Fitness:",JLabel.CENTER);
m_labelfitness.setBackground(Color.blue);
m_labelfitness.setForeground(Color.white);
m_labelexperience = new JLabel("Experience",JLabel.CENTER);
m_labelexperience.setBackground(Color.blue);
m_labelexperience.setForeground(Color.white);
//creation of textfields to hold the data
//making them non-editable and b/ground of black with white text
m_name = new JTextField(20);
m_name.setEditable(false);
m_name.setBackground(Color.black);
m_name.setForeground(Color.white);
m_age = new JTextField(2);
m_age.setEditable(false);
m_age.setBackground(Color.black);
m_age.setForeground(Color.white);
m_weight = new JTextField(3);
m_weight.setEditable(false);
m_weight.setBackground(Color.black);
m_weight.setForeground(Color.white);
m_speed = new JTextField(2);
m_speed.setEditable(false);
m_speed.setBackground(Color.black);
m_speed.setForeground(Color.white);
m_acceleration = new JTextField(2);
m_acceleration.setEditable(false);
m_acceleration.setBackground(Color.black);
m_acceleration.setForeground(Color.white);
m_professionalism = new JTextField(2);
m_professionalism.setEditable(false);
m_professionalism.setBackground(Color.black);
m_professionalism.setForeground(Color.white);
m_jump = new JTextField(2);
m_jump.setEditable(false);
m_jump.setBackground(Color.black);
m_jump.setForeground(Color.white);
m_stamina = new JTextField(2);
m_stamina.setEditable(false);
m_stamina.setBackground(Color.black);
m_stamina.setForeground(Color.white);
m_bravery = new JTextField(2);
m_bravery.setEditable(false);
m_bravery.setBackground(Color.black);
m_bravery.setForeground(Color.white);
m_fitness = new JTextField(2);
m_fitness.setEditable(false);
m_fitness.setBackground(Color.black);
m_fitness.setForeground(Color.white);
m_experience = new JTextField(2);
m_experience.setEditable(false);
m_experience.setBackground(Color.black);
m_experience.setForeground(Color.white);
//create a panel to hold this data
Panel data = new Panel();
data.setLayout(new GridLayout(0,4));
data.setBackground(Color.blue);
data.add(m_labelname);
data.add(m_name);
data.add(m_labelage);
data.add(m_age);
data.add(m_labelweight);
data.add(m_weight);
data.add(m_labelspeed);
data.add(m_speed);
data.add(m_labelacceleration);
data.add(m_acceleration);
data.add(m_labelprofessionalism);
data.add(m_professionalism);
data.add(m_labeljump);
data.add(m_jump);
data.add(m_labelstamina);
data.add(m_stamina);
data.add(m_labelbravery);
data.add(m_bravery);
data.add(m_labelfitness);
data.add(m_fitness);
data.add(m_labelexperience);
data.add(m_experience);
getContentPane().add(data, BorderLayout.CENTER);
public void buildDefaultGUI() //construct the default components for GUI
JToolBar wndToolBar = new JToolBar();
wndToolBar.setBackground(Color.green);
wndToolBar.setFloatable(false);
m_buttonFirst = new JButton( new ImageIcon( "graphic/myFirst.gif" ) );
m_buttonPrevious = new JButton(new ImageIcon( "graphic/myPrevious.gif" ) );
m_buttonNext = new JButton(new ImageIcon( "graphic/myNext.gif" ) );
m_buttonLast = new JButton(new ImageIcon( "graphic/myLast.gif" ) );
m_buttonClose = new JButton(new ImageIcon( "graphic/myClose.gif" ) );
m_mainbuttonClose = new JButton("CLOSE");
// implement action listener
m_buttonFirst.addActionListener(this);
m_buttonPrevious.addActionListener(this);
m_buttonNext.addActionListener(this);
m_buttonLast.addActionListener(this);
m_buttonClose.addActionListener(this);
m_mainbuttonClose.addActionListener(this);
//set the tool tips for each of the button
m_buttonFirst.setToolTipText( "Display first record" );
m_buttonPrevious.setToolTipText( "Display previous record" );
m_buttonNext.setToolTipText( "Display next record" );
m_buttonLast.setToolTipText( "Display last record" );
m_buttonClose.setToolTipText( "Close this window and return to game" );
m_mainbuttonClose.setToolTipText( "Close this window and return to game" );
m_mainbuttonClose.setBackground(Color.green);
//add these buttons to the toolbar
wndToolBar.add( m_buttonFirst );
wndToolBar.add( m_buttonPrevious );
wndToolBar.add( m_buttonNext );
wndToolBar.add( m_buttonLast );
wndToolBar.addSeparator(); //separator in the toolbar
wndToolBar.add( m_buttonClose );
getContentPane().add(wndToolBar, BorderLayout.NORTH);
getContentPane().add(m_mainbuttonClose, BorderLayout.SOUTH);
public void buildCourseGUI() //construct the course GUI
buildDefaultGUI();
public void buildJockeyGUI() //construct the jockey GUI
buildDefaultGUI();
public void actionPerformed( ActionEvent evt)
//button first record is pressed
if( evt.getSource() == m_buttonFirst )
try
if( m_DatabaseMan.m_resultSet.first() )
transferData(type1);
catch (SQLException exSQL )
System.err.println( exSQL.toString() );
//button next record is pressed
if( evt.getSource() == m_buttonNext )
try
if(!m_DatabaseMan.m_resultSet.isLast())
if(m_DatabaseMan.m_resultSet.next())
transferData(type1);
catch (SQLException exSQL )
System.err.println( exSQL.toString() );
//previous button is pressed
if( evt.getSource() == m_buttonPrevious )
try
if( !m_DatabaseMan.m_resultSet.first())
if(m_DatabaseMan.m_resultSet.previous())
transferData(type1);
catch (SQLException exSQL )
System.err.println( exSQL.toString() );
//last button is pressed
if( evt.getSource() == m_buttonLast )
try
if(m_DatabaseMan.m_resultSet.last())
transferData(type1);
catch (SQLException exSQL )
System.err.println( exSQL.toString() );
// close button(s) pressed
if( evt.getSource() == m_buttonClose)
setVisible( false );
dispose(); //return the dialog window resources
m_DatabaseMan.CloseConnection();
if( evt.getSource() == m_mainbuttonClose)
setVisible( false );
dispose(); //return the dialog window resources
m_DatabaseMan.CloseConnection();
public void transferData(String type1) throws SQLException //return a String
if(type1 =="Horse")
//transfer horse details
m_name.setText(m_DatabaseMan.m_resultSet.getString("NAME"));
m_professionalism.setText(m_DatabaseMan.m_resultSet.getString("PROFESSIONALISM"));
m_speed.setText(m_DatabaseMan.m_resultSet.getString("SPEED"));
m_stamina.setText(m_DatabaseMan.m_resultSet.getString("STAMINA"));
m_weight.setText(m_DatabaseMan.m_resultSet.getString("WEIGHT"));
m_experience.setText(m_DatabaseMan.m_resultSet.getString("EXPERIENCE"));
m_fitness.setText(m_DatabaseMan.m_resultSet.getString("FITNESS"));
m_jump.setText(m_DatabaseMan.m_resultSet.getString("JUMP"));
m_age.setText(m_DatabaseMan.m_resultSet.getString("AGE"));
m_bravery.setText(m_DatabaseMan.m_resultSet.getString("BRAVERY"));
m_acceleration.setText(m_DatabaseMan.m_resultSet.getString("ACCELERATION"));
if(type1 =="Jockey")
m_name.setText(m_DatabaseMan.m_resultSet.getString("NAME"));
m_age.setText(m_DatabaseMan.m_resultSet.getString("AGE"));
if(type1 =="Course")
//transfer course details not implemented yet
} //end of class DBviewer
I ve set up an odbc driver and the database has data in it but I still get this run time error an no data is transfered to the dialog box
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1525)
at sun.jdbc.odbc.JdbcOdbcResultSet.reWordAsCountQuery(JdbcOdbcResultSet.java:6268)
at sun.jdbc.odbc.JdbcOdbcResultSet.calculateRowCount(JdbcOdbcResultSet.java:6061)
at sun.jdbc.odbc.JdbcOdbcResultSet.initialize(JdbcOdbcResultSet.java:150)
at sun.jdbc.odbc.JdbcOdbcStatement.getResultSet(JdbcOdbcStatement.java:420)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:250)
at DatabaseMan.<init>(DatabaseMan.java:34)
at DBviewer.<init>(DBviewer.java:83)
at MainWindow.actionPerformed(MainWindow.java:266)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216)
at java.awt.Component.processMouseEvent(Component.java:3715)
at java.awt.Component.processEvent(Component.java:3544)
at java.awt.Container.processEvent(Container.java:1164)
at java.awt.Component.dispatchEventImpl(Component.java:2593)
at java.awt.Container.dispatchEventImpl(Container.java:1213)
at java.awt.Component.dispatchEvent(Component.java:2497)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
at java.awt.Container.dispatchEventImpl(Container.java:1200)
at java.awt.Window.dispatchEventImpl(Window.java:914)
at java.awt.Component.dispatchEvent(Component.java:2497)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:339)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
Im really stuck!!! any suggestions? thanks in advance
Thank you for your response and sorry for the length
of code,
Thats was my first idea that it was asking for
or something I dont have but I checked my database and
I dont have any unusually large data entries (most
between 8-15 letters, the others are numbers) could it
be something wrong with how I've entered the database
in MsAccess, or am i barking up the wrong tree again!
Many thanks
RobI think you've misunderstood me. This has nothing to do with unusually large data entries, but rather the opposite. You are wrongly expecting data that is shorter than you think. When you call rs.getString(i) to retrieve a column value of a field, and you only want the first 5 characters in the column (instead of 10 or whatever the column size is), you would do something similar to the following:
String column_value = rs.getString(1).subtstring(0,5);The above expects a String that is at least 5 characters. Your problem is when your column value returned is less than the specified substring index ( in this case 5 ) it will throw an exception. If you changed your code to this, the error will not occur:
String column_value = rs.getString( 1 ).subtstring( 0, 5);
if ( column_value.length() > 5 )
column_value = column_value.substring( 0, 5 );
}Jamie
Similar Messages
-
Problem with jdbc:odbc returning incorrect number of rows.
Hello,
Am sure i have done something stupid, but i have an issue with jdbc:odbc ....
It is a simple sceanrio that i have coded umpteen times before ...
I have the following ....
1. Connection to DB2 on an IBM i5 (I apologise for not using native drivers from jt400.jar, but i had an ODBC code example and was in a rush - no excuse i know)
2. Statement object created from connection above
3. A string with my SQL in it
4. A result set for the results.
These are created as follows:
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(ODBCSource, userID, password);
if (con == null) {
// error handling not relevant here
} else {
Statement s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String SQL = "select * from table";
ResultSet rs = s.executeQuery(SQL);
i then try to loop ....
while (rs.next() )
// stuff
however, i only ever get one result .... if i stick in the check for isLast, the first loop hits this check, i get my little status message, and the loop ends.
while (rs.next() )
if (rs.isLast() )
System.out.println("I am on last record");
BUT if i run the SQL
"select count(*) from table" ... i get a count of 148 !!
I tried setting the FetchSize through setFetchSize(), but made no difference.
This is running on a JBoss server 4.2.1GA, JDK is "jdk1.6.0_02" .... i have a suspicion that this may be a JBoss specfic issue, as this exact code runs just fine on the Domino platform that it was originally on, if this is the case, i apologise for wasting everyones time .... but would still appreciate any pointers you can give me.
CheersHello,
Thanks for the reply, I am not sure i follow what you are saying.
I only mentioned JBoss as it is the application server that we have deployed to and because the orignal code ran fine on a Domino server, I will take your advice and try to run it through in debug rather than running actually on the application server.
Am i incorrect in my assumption that if "select count(*) from table" gives a count of 148, i should expect 148 records in a result set created from "select * from table" ? This is all rather new to me so i apologise if this is incorrect, I'd love to know why this is incorrect so i dont make similar mistakes in future.
Also, If i run this same code on the previous platform, i get 148 iterations of the code contained within
while (rs.next() ) { ... }
When the war file is deployed to JBoss, the same SQL statement gives a result set that only iterates once for
while (rs.next() ) { ... }
The previous platform as I say was domino, but it was running as a lotus notes java agent (despite not using any notes documents etc) as it happened to be where the web pages that call this process were located. It is possible that some of the main code has changed as I had cut and paste the code into a servlet using MyEclipse, but i have double checked the bit that does this SQL request and it is identical
To complete the picture, the new servelt is then called from the action tag on the submit form on a JSP, when it ends the servlet redirects via the requestdispacher to success or failure jsp pages depending on the outcome of the processing.
Thank you again for your help. -
Problems with JDBC-ODBC Driver
Hello,
I am trying to access a DSN on my windows with a dedicated DB driver of some company. so i used the JDBC-ODBC connector.
when launching the java code, and debugging the problem i get the following error:
DriverManager.getConnection("jdbc:odbc:priority32;UID=Manager;PWD=keren")
trying driver--className=com.mysql.jdbc.Driver,com.mysql.jdbc.Driver@16caf43--
trying driver--className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@66848c--
*Driver.connect (jdbc:odbc:priority32;UID=Manager;PWD=keren)
JDBC to ODBC Bridge: Checking security
No SecurityManager present, assuming trusted application/applet
JDBC to ODBC Bridge 2.0001
Current Date/Time: Tue Aug 12 07:50:37 VET 2008
Loading JdbcOdbc library
Allocating Environment handle (SQLAllocEnv)
hEnv=50338088
Allocating Connection handle (SQLAllocConnect)
hDbc=50338256
Connecting (SQLDriverConnect), hDbc=50338256, szConnStrIn=DSN=priority32;UID=Manager;PWD=keren
*Connection.getMetaData
*DatabaseMetaData.getDriverName
Get connection info string (SQLGetInfo), hDbc=50338256, fInfoType=6, len=300
tabula.dll
*DatabaseMetaData.getDriverVersion
Get connection info string (SQLGetInfo), hDbc=50338256, fInfoType=7, len=300
07.00.0000
*DatabaseMetaData.getDriverName
Get connection info string (SQLGetInfo), hDbc=50338256, fInfoType=6, len=300
tabula.dll
Driver name: JDBC-ODBC Bridge (tabula.dll)
*DatabaseMetaData.getDriverVersion
Get connection info string (SQLGetInfo), hDbc=50338256, fInfoType=7, len=300
07.00.0000
Driver version: 2.0001 (07.00.0000)
Caching SQL type information
*Connection.getMetaData
*DatabaseMetaData.getTypeInfo
Allocating Statement Handle (SQLAllocStmt), hDbc=50338256
hStmt=50339424
Get type info (SQLGetTypeInfo), hStmt=50339424, fSqlType=0
Number of result columns (SQLNumResultCols), hStmt=50339424
value=15
Get connection info string (SQLGetInfo), hDbc=50338256, fInfoType=10, len=300
03.52.0000
Fetching (SQLFetch), hStmt=50339424
Column attributes (SQLColAttributes), hStmt=50339424, icol=1, type=2
value (int)=12
Column attributes (SQLColAttributes), hStmt=50339424, icol=1, type=3
value (int)=129
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
CHAR
Get integer data (SQLGetData), hStmt=50339424, column=2
value=12
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
CHAR(1)
Get integer data (SQLGetData), hStmt=50339424, column=2
value=1
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
RCHAR
Get integer data (SQLGetData), hStmt=50339424, column=2
value=12
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
REAL
Get integer data (SQLGetData), hStmt=50339424, column=2
value=6
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
INT
Get integer data (SQLGetData), hStmt=50339424, column=2
value=4
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
UNSIGNED
Get integer data (SQLGetData), hStmt=50339424, column=2
value=4
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
TIME
Get integer data (SQLGetData), hStmt=50339424, column=2
value=10
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
DATE
Get integer data (SQLGetData), hStmt=50339424, column=2
value=11
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
DATE
Get integer data (SQLGetData), hStmt=50339424, column=2
value=9
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
DAY
Get integer data (SQLGetData), hStmt=50339424, column=2
value=4
Fetching (SQLFetch), hStmt=50339424
Get string data (SQLGetData), hStmt=50339424, column=1, maxLen=130
DECIMAL
Get integer data (SQLGetData), hStmt=50339424, column=2
value=3
Get integer data (SQLGetData), hStmt=50339424, column=3
value=0
Fetching (SQLFetch), hStmt=50339424
End of result set (SQL_NO_DATA)
*ResultSet.close
Free statement (SQLFreeStmt), hStmt=50339424, fOption=1
*ResultSet has been closed
Get connection info (SQLGetInfo), hDbc=50338256, fInfoType=44
int value=0
Get connection info (SQLGetInfo), hDbc=50338256, fInfoType=121
RETCODE = -1
ERROR - Generating SQLException...
SQLState(S1096) vendor code(0)
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Information type out of range
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetInfo(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.checkBatchUpdateSupport(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at WigsUpdate.main(WigsUpdate.java:25)
getConnection returning driver--className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@66848c--what can be done?
thank you very muchHimberJack wrote:
oh now i understand.
i got a very unknown company which supplied the ODBC driver, but they dont have java driver...
so I have nothing to do about it?The choices are find a different driver or use the one you have.
The one you have doesn't do batches.
Finding a different driver could involve the following.
- Buying one from somewhere else
- Pay someone to write one.
- Write a driver yourself.
All of those are somewhat dependent that the "unknown company" has an API that supports that. You (or someone) could also figure out the file format of the "unknown company" as well and then write one. -
Newbie: Problem with jdbc-odbc and MS SQL server 2005
I'm on win vistax64 with SQLSERVER 2005 and I have set up the odbc source as system dsn using the SQL Native Client driver with SQL authentication and the connectivity test in the end succeeds.
I'm trying to make a simple web app that will connect to the database and perform simple querries. It's a school assignment.
I'm using the jdbc-odbc bridge because it's the simplest way to do it and it's what we were shown in class.
I get the following irritating error:
"Cannot establish a connection to jdbc:odb:sstmdb using sun.jdbc.odbc.JdbcOdbcDriver ([Microsoft][ODBC Driver Manager] Data source name not found and no default driver specifies)".
I'm working with netbeans 5.5.1 and this error is what I get when in the runtime tab I try to connect with the jdbc-odbc. I get a similar error in the logs when I try to run the app on the j2ee server.
This is the java class that establishes the connection.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Connector {
private static final String dbUrl="jdbc:odbc:sstmdb";
private static final String user="kimon";
private static final String password="jackohara";
public static Connection getConnection(){
Connection conn = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(dbUrl,user,password);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
return conn;
}It has worked perfectly on my school PC with winXP and MSDE2000.
What am I missing?Ok, help came from an other way where I was inquiring about a different problem:
Connectivity works fine by using User DSN instead of System DSN for the ODBC source. -
Problem with JDBC ODBC connectivity
I am trying to connect to MS access database with jsp page. This is sample from my js page :
String SUN_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(SUN_DRIVER);
String aDataSourceName = "puneet";
String url = "jdbc:odbc:" + aDataSourceName;
Connection con;
con = DriverManager.getConnection("jdbc:odbc:puneet","","");
The last line gives me the follwoing error :
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
puneet is name of my datasource and it points to my .mbd file.
I dont have anyusername or passwords for this daatsource.
I am using Tomcat/4.1.18-LE and jdk1.4
I have also added rt.jar in the classpath
pls help
pg4Hi pg4,
May be your dsn is not pointing to .mdb file. Check it by putting your mdb file right where your code is and then user following syntax which is called dsn-less connection. It helps you to connect to the target mdb file with out any need of dsn.
String url = "jdbc:odbc:;Driver={Microsoft Access Driver (*.mdb)}; DBQ=yourDBFile.mdb";
regards,
Humayun -
OS in my PC is Windows7 Ultimate(64-bit), and I had JDK1.7.0_21(compatible with my PC), Oracle 10G ExpressEdition(32-Bit), ApacheTomcat7.0.11(compatible with my PC).
As my OS is 64-BIT, I accessed C:\Windows\SysWOW64\odbcad32 and I selected UserDSN tab->Add->Microsoft ODBC for Oracle->finish,tapply->ok. Then a Dialog Box appeared and I entered a DSN name=ramsdsn and my DATABASE USERID=rams in username->ok->apply->ok.
But when I tried to compile my program using:
DriverManager.getConnection("jdbc:odbc:ramsdsn","rams","rams");
I got an error:java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
Help me FRNZ.. I have been trying it for 7 days and I'm tired of it and I could not figured it yet...
THANKS in Advance...Wrong database is the most likely reason.
Note that the ODBC driver is not a good driver for MS SQL Server. It handles varchar as chars. So an insert of 'A' into a varchar(25) will end up with 'A' followed by 24 spaces. And that probably isn't what you want your varchars to do. -
Problem With Jdbc-Odbc BRidge Connection
I get The following error
SQLException:[Microsoft][ODBC Driver Manager] Invalid cursor state
when using the code
whats the problem with it
import java.sql.*;
public class Employee {
String DBurl;
Connection con;
public Employee(String url)
DBurl=url;
void queryTest()
String query="SELECT * FROM EmpTable";
ResultSet result;
Statement stmt;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
catch(java.lang.ClassNotFoundException e){
System.err.println("Class not Found Exception:");
System.err.println(e.getMessage());
try{
con=DriverManager.getConnection(DBurl,"myLogin","mypassword");
stmt=con.createStatement();
result=stmt.executeQuery(query);
System.out.println("ID"+"\t"+"Name"+"\t"+"Rate"+"\t"+"DeptID");
System.out.println("--"+"\t"+"----"+"\t"+"---"+"\t"+"----");
while(result.next());
String name=result.getString("Name");
int ID=result.getInt("ID");
float rate=result.getFloat("Rate");
int deptID=result.getInt("DeptID");
System.out.println(ID+"\t"+name+"\t"+rate+"\t"+deptID);
stmt.close();
con.close();
catch(SQLException ex){
System.err.println("SQLException:" + ex.getMessage());
public static void main(String args[])
Employee app = new Employee("jdbc:odbc:Employee");
app.queryTest();
}here's your mistake:
while(result.next()); // <--- the loop body is empty.Remove the semi-colon.
% -
I have a problem with JDBC Realm in Tomcat/Oracle/Win XP
I have a problem with JDBC Realm in Tomcat.
I have attached my server.xml file located in the
C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml
The Problem is that when I login I get the user name and password prompt but it does not resolve.
When I enter in the tomcat-users.xml password with memory realm uncommented it works fine.
C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\tomcat-users.xml
Is there a cache or something I need to reset for the JDBC Realm to work?
I have attached my tables and contents as well...
Did I miss something????
Thanks
Phil
server.xml
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
</GlobalNamingResources>
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@localhost:1521:orcl"
connectionName="testName" connectionPassword="testPass"
userTable="users"
userNameCol="user_name"
userCredCol="user_pass"
userRoleTable="user_roles"
roleNameCol="role_name" />
<!-- Define the default virtual host
Note: XML Schema validation will not work with Xerces 2.2.
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
Tables
create table users
user_name varchar(15) not null primary key,
user_pass varchar(15) not null
create table roles
role_name varchar(15) not null primary key
create table user_roles
user_name varchar(15) not null,
role_name varchar(15) not null,
primary key( user_name, role_name )
select * from users;
----------------------+
| user_name | user_pass |
----------------------+
| tomcat | tomcat |
| user1 | tomcat |
| user2 | tomcat |
| user3 | tomcat |
----------------------+
select * from roles;
| role_name |
| tomcat |
| role1 |
select * from user_roles;
-----------------------+
| role_name | user_name |
-----------------------+
| tomcat | user1 |
| role1 | user2 |
| tomcat | tomcat |
| role1 | tomcat |
-----------------------+Jan 2, 2008 11:49:35 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jan 2, 2008 11:49:35 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 734 ms
Jan 2, 2008 11:49:35 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jan 2, 2008 11:49:35 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.9
Jan 2, 2008 11:49:35 AM org.apache.catalina.realm.JDBCRealm start
SEVERE: Exception opening database connection
java.sql.SQLException: oracle.jdbc.driver.OracleDriver
at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:684)
at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:758)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1004)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
Jan 2, 2008 11:49:35 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Jan 2, 2008 11:49:36 AM org.apache.catalina.core.StandardContext resourcesStart -
Update problems with jdbc on access db too
hi..
i have a strange problem with updating a record in ms-access - db by using jdbc.
my program creates a "correct??" update-statement but i get an error-message: errorcode:3144.. syntaxerror in update-statement or something like that..
thats the statement that my program creates:
update maX2 set m1='super',set m2='hallo' where id=2
java-code:
Statement stmt = con.createStatement();
stmt.executeUpdate(... the update-statement ...);
does anybody know why i get this errormessage?Your statemente should be:
update maX2 set m1='super', m2='hallo' where id=2
HTH -
MS access,servlets and jdbc-odbc
when i try to connect to ms access database using servlet i get unable to open registry key DriverId problem.
servlet successfully extracts the form data.Even jdbc code alone works fine, but when jdbc code is embeded in servlet I get the above error.I am using java web server 2.0 and a jdbc-odbc(type 1) driver.
Please help me.................!
I cannot proceed with my project without solving this problem.You have not specified the exception class.
If it is java.security, try peeping into jws security directory, and set the access to your servlet directory.
I do not know this helped you or not.
regards -
Oracle RDB Driver fails with JDBC/ODBC Bridge
Has anyone experienced problems using the latest Oracle RDB
Driver (3.0.2.0) with the JDBC/ODBC Bridge.
We have been using the Oracle ODBC Driver for RDB (2.10.17)
successfully on NT, but it is not supported on W2K. The new
drivers work fine for Access etc., but fail with the bridge.
Specifically, you can step thru a result set, but getObject()
returns null for all fields.
Any suggestions?
JoeThis forum is for general suggestions and feedback about the OTN
site. For technical question about an Oracle product, you can
select the appropriate discussion forum in our 'Discussions'
section at: http://forums.oracle.com/forums/homepage.jsp
Best regards, OTN Team -
I don't know where the problem originate, the only thing in my memory is that the program worked very well on my PC yesterday, but today, without even slightest change, it doesn't work anymore. As to debug it, I simplified the codes to the least, but it still refuse to work. I was beaten down by this problem totally, and cannot make out any solution for it, so, I come here, hoping to find a warrior to kill this damned bug for me.
My program is a Servlet, but for the purpose of debugging, I have recode it to an Application/Servlet. When run as a application, I can get the result expected, but as a Servlet, :-(, maybe you should see it by yourself. My server software is Tomcat 4.1.15, and the JDK version is 1.4.0. To excute this program, you should add Data Source "Test" to ODBC.
///////////////////////code begins/////////////////////////
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class Ex extends HttpServlet
int ErrorType = 0;
String err = new String("");
public static void main(String args[]) throws Exception{
Ex cEx = new Ex();
cEx.init();
System.out.println(cEx.ErrorType);
public void init() {
String url = "jdbc:odbc:Test";
ErrorType = 3; //passed
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
ErrorType = 1; //trapped in Class.forName
try{
Connection c = DriverManager.getConnection(url);
} catch (SQLException e) {
e.printStackTrace();
ErrorType = 2; //trapped in DriverManager.getConnection
err = e.getMessage();
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
res.setContentType("text/html; charset=GB2312");
PrintWriter out = res.getWriter();
out.println("Success " + "<p>" + ErrorType + "<p>" +err);
out.close();
//////////////////////////code ends///////////////////////////////
The result from the Servlet tell me that the problem occurred within the connection process, I don't know who should be responsible to this - Tomcat or JDBC?If you could print the exception that you got then that would help :) In the mean time, I could make a guess. It is unlikely that your application server (in this case, Tomcat) is blocking connections from your servlet. So the problem is either with JDBC directly or with the underlying datasource. It seems unlikely that it is JDBC given that you have stated that the code has not changed and it works in application form.
My guess would be that you are coming up against some sort of security constraint (eg: your DBMS is letting you log in from one IP but not another?, your Java plug-in security policy is disallowing the connection?). It's hard to say.
But if it works as an application but not via a servlet then you could try putting this in your java.policy file, which is located in the directory where your plug-ins are installed (eg: "C:\Program Files\Java\<version>\lib\security\") on Windows systems;
permission java.net.SocketPermission "bend xp:1099", "listen,connect,accept";
Try that, see if it works :)
Ben -
When the installation is done according to the documentation,
web access does not work because the scripts that add entries to
the jserv.properties file add duplicate references to
wrapper.env and wrapper.classpath. Look at the jserv.properties
file below and look at the remarked-out (#) lines of the
duplicate references. For example, look at the references to the
wrapper.env=LD_LIBRARY_PATH
Oracle, please note this bug so the web access problems are
minimized when the product is intstalled.
Thank you,
William T.
# Apache JServ Configuration
File #
################################ W A R N I N G
# Unlike normal Java properties, JServ configurations have some
important
# extensions:
# 1) commas are used as token separators
# 2) multiple definitions of the same key are concatenated in
a
# comma separated list.
# Execution parameters
# The Java Virtual Machine interpreter.
# Syntax: wrapper.bin=[filename] (String)
# Note: specify a full path if the interpreter is not visible in
your path.
wrapper.bin=/d3/Apache/jdk/bin/java
# Arguments passed to Java interpreter (optional)
# Syntax: wrapper.bin.parameters=[parameters] (String)
# Default: NONE
wrapper.bin.parameters=-Xms64m
wrapper.bin.parameters=-Xmx128m
# Apache JServ entry point class (should not be changed)
# Syntax: wrapper.class=[classname] (String)
# Default: "org.apache.jserv.JServ"
# Arguments passed to main class after the properties filename
(not used)
# Syntax: wrapper.class.parameters=[parameters] (String)
# Default: NONE
# Note: currently not used
# PATH environment value passed to the JVM
# Syntax: wrapper.path=[path] (String)
# Default: "/bin:/usr/bin:/usr/local/bin" for Unix systems
# "c:\(windows-dir);c:\(windows-system-dir)" for Win32
systems
# Notes: if more than one line is supplied these will be
concatenated using
# ":" or ";" (depending wether Unix or Win32) characters
# Under Win32 (windows-dir) and (windows-system-dir) will
be
# automatically evaluated to match your system
requirements
# CLASSPATH environment value passed to the JVM
# Syntax: wrapper.classpath=[path] (String)
# Default: NONE (Sun's JDK/JRE already have a default classpath)
# Note: if more than one line is supplied these will be
concatenated using
# ":" or ";" (depending wether Unix or Win32) characters.
JVM must be
# able to find JSDK and JServ classes and any utility
classes used by
# your servlets.
# Note: the classes you want to be automatically reloaded upon
modification
# MUST NOT be in this classpath or the classpath of the
shell
# you start the Apache from.
wrapper.classpath=/d3/Apache/jdk/lib/tools.jar
wrapper.classpath=/d3/Apache/Jserv/libexec/ApacheJServ.jar
wrapper.classpath=/d3/Apache/Jsdk/lib/jsdk.jar
# An environment name with value passed to the JVM
# Syntax: wrapper.env=[name]=[value] (String)
# Default: NONE on Unix Systems
# SystemDrive and SystemRoot with appropriate values on
Win32 systems
wrapper.env=PATH=/d3/bin
# An environment name with value copied from caller to Java
Virtual Machine
# Syntax: wrapper.env.copy=[name] (String)
# Default: NONE
# Uncomment the following lines to set the default locale and
NLS_LANG
# setting based on the environment variables.
# wrapper.env.copy=LANG
# wrapper.env.copy=NLS_LANG
# Copies all environment from caller to Java Virtual Machine
# Syntax: wrapper.env.copyall=true (boolean)
# Default: false
# Protocol used for signal handling
# Syntax: wrapper.protocol=[name] (String)
# Default: ajpv12
# General parameters
# Set the default IP address or hostname Apache JServ binds (or
listens) to.
# If you have a machine with multiple IP addresses, this address
# will be the one used. If you set the value to localhost, it
# will be resolved to the IP address configured for the locahost
# on your system (generally this is 127.0.0.1). This feature is
so
# that one can have multiple instances of Apache JServ listening
on
# the same port number, but different IP addresses on the same
machine.
# Use bindaddress=* only if you know exactly what you are doing
here,
# as it could let JServ wide open to the internet.
# You must understand that JServ has to answer only to Apache,
and should not
# be reachable by nobody but mod_jserv. So localhost is usually a
# good option. The second best choice would be an internal
network address
# (protected by a firewall) if JServ is running on another
machine than Apache.
# Ask your network admin.
# "*" may be used on boxes where some of the clients get
connected using
# "localhost"and others using another IP addr.
# Syntax: bindaddress=[ipaddress] or [localhost] or [*]
# Default: localhost
bindaddress=localhost
# Set the port Apache JServ listens to.
# Syntax: port=[1024,65535] (int)
# Default: 8007
port=8007
# Servlet Zones parameters
# List of servlet zones Apache JServ manages
# Syntax: zones=[servlet zone],[servlet zone]... (Comma
separated list of String)
# Default: NONE
zones=root
# Configuration file for each servlet zone (one per servlet zone)
# Syntax: [servlet zone name as on the zones list].properties=
[full path to configFile]
(String)
# Default: NONE
# Note: if the file could not be opened, try using absolute
paths.
root.properties=/d3/Apache/Jserv/etc/zone.properties
# Thread Pool parameters
# Enables or disables the use of the thread pool.
# Syntax: pool=true (boolean)
# Default: false
# WARNING: the pool has not been extensively tested and may
generate
deadlocks.
# For this reason, we advise against using this code in
production environments.
pool=false
# Indicates the number of idle threads that the pool may contain.
# Syntax: pool.capacity=(int)>0
# Default: 10
# NOTE: depending on your system load, this number should be low
for contantly
# loaded servers and should be increased depending on load
bursts.
pool.capacity=10
# Indicates the pool controller that should be used to control
the
# level of the recycled threads.
# Syntax: pool.controller=[full class of controller] (String)
# Default: org.apache.java.recycle.DefaultController
# NOTE: it is safe to leave this unchanged unless special
recycle behavior
# is needed. Look at the "org.apache.java.recycle" package
javadocs for more
# info on other pool controllers and their behavior.
pool.controller=org.apache.java.recycle.DefaultController
# Security parameters
# Enable/disable the execution of org.apache.jserv.JServ as a
servlet.
# This is disabled by default because it may give informations
that should
# be restricted.
# Note that the execution of Apache JServ as a servlet is
filtered by the web
# server modules by default so that both sides should be enabled
to let this
# service work.
# This service is useful for installation and configuration
since it gives
# feedback about the exact configurations Apache JServ is using,
but it should
# be disabled when both installation and configuration processes
are done.
# Syntax: security.selfservlet=true (boolean)
# Default: false
# WARNING: disable this in a production environment since may
give reserved
# information to untrusted users.
security.selfservlet=true
# Set the maximum number of socket connections Apache JServ may
handle
# simultaneously. Make sure your operating environment has
enough file
# descriptors to allow this number.
# Syntax: security.maxConnections=(int)>1
# Default: 50
security.maxConnections=50
# Backlog setting for very fine performance tunning of JServ.
# Unless you are familiar to sockets leave this value commented
out.
# security.backlog=5
# List of IP addresses allowed to connect to Apache JServ. This
is a first
# security filtering to reject possibly unsecure connections and
avoid the
# overhead of connection authentication.
# <warning>
# (please don't use the following one unless you know what you
are doing :
# security.allowedAddresses=DISABLED
# allows connections on JServ'port from entire internet.)
# You do need only to allow YOUR Apache to talk to JServ.
# </warning>
# Default: 127.0.0.1
# Syntax: security.allowedAddresses=[IP address],[IP Address]...
(Comma
separated list of IP addresses)
#security.allowedAddresses=127.0.0.1
# Enable/disable connection authentication.
# NOTE: unauthenticated connections are a little faster since
authentication
# handshake is not performed at connection creation.
# WARNING: authentication is disabled by default because we
believe that
# connection restriction from all IP addresses but localhost
reduces your
# time to get Apache JServ to run. If you allow other addresses
to connect and
# you don't trust it, you should enable authentication to
prevent untrusted
# execution of your servlets. Beware: if authentication is
disabled and the
# IP address is allowed, everyone on that machine can execute
your servlets!
# Syntax: security.authentication=[true,false] (boolean)
# Default: true
security.authentication=false
# Authentication secret key.
# The secret key is passed as a file that must be kept secure
and must
# be exactly the same of those used by clients to authenticate
themselves.
# Syntax: security.secretKey=[secret key path and filename]
(String)
# Default: NONE
# Note: if the file could not be opened, try using absolute
paths.
#security.secretKey=./etc/jserv.secret.key
# Length of the randomly generated challenge string (in bytes)
used to
# authenticate connections. 5 is the lowest possible choice to
force a safe
# level of security and reduce connection creation overhead.
# Syntax: security.challengeSize=(int)>5
# Default: 5
#security.challengeSize=5
# Logging parameters
# Enable/disable Apache JServ logging.
# WARNING: logging is a very expensive operation in terms of
performance. You
# should reduced the generated log to a minumum or even disable
it if fast
# execution is an issue. Note that if all log channels (see
below) are
# enabled, the log may become really big since each servlet
request may
# generate many Kb of log. Some log channels are mainly for
debugging
# purposes and should be disabled in a production environment.
# Syntax: log=[true,false] (boolean)
# Default: true
log=true
# Set the name of the trace/log file. To avoid possible
confusion about
# the location of this file, an absolute pathname is recommended.
# This log file is different than the log file that is in the
# jserv.conf file. This is the log file for the Java portion of
Apache
# JServ.
# On Unix, this file must have write permissions by the owner of
the JVM
# process. In other words, if you are running Apache JServ in
manual mode
# and Apache is running as user nobody, then the file must have
its
# permissions set so that that user can write to it.
# Syntax: log.file=[log path and filename] (String)
# Default: NONE
# Note: if the file could not be opened, try using absolute
paths.
log.file=/d3/Apache/Jserv/logs/jserv.log
# Enable the timestamp before the log message
# Syntax: log.timestamp=[true,false] (boolean)
# Default: true
log.timestamp=true
# Use the given string as a data format
# (see java.text.SimpleDateFormat for the list of options)
# Syntax: log.dateFormat=(String)
# Default: [dd/MM/yyyy HH:mm:ss:SSS zz]
log.dateFormat=[dd/MM/yyyy HH:mm:ss:SSS zz]
# Since all the messages logged are processed by a thread
running with
# minimum priority, it's of vital importance that this thread
gets a chance
# to run once in a while. If it doesn't, the log queue overflow
occurs,
# usually resulting in the OutOfMemoryError.
# To prevent this from happening, two parameters are used:
log.queue.maxage
# and log.queue.maxsize. The former defines the maximum time for
the logged
# message to stay in the queue, the latter defines maximum
number of
# messages in the queue.
# If one of those conditions becomes true (age > maxage || size
maxsize),# the log message stating that fact is generated and the log
queue is
# flushed in the separate thread.
# If you ever see such a message, either your system doesn't
live up to its
# expectations or you have a runaway loop (probably, but not
necessarily,
# generating a lot of log messages).
# WARNING: Default values are lousy, you probably want to tweak
them and
# report the results back to the development team.
# Syntax: log.queue.maxage = [milliseconds]
# Default: 5000
log.queue.maxage = 5000
# Syntax: log.queue.maxsize = [integer]
# Default: 1000
log.queue.maxsize = 1000
# Enable/disable logging the channel name
# Default: false
# log.channel=false
# Enable/disable channels, each logging different actions.
# Syntax: log.channel.[channel name]=[true,false] (boolean)
# Default: false
# Info channel - quite a lot of informational messages
# hopefully you don't need them under normal circumstances
# log.channel.info=true
# Servlets exception, i.e. exception caught during
# servlet.service() processing are monitored here
# you probably want to have this one switched on
log.channel.servletException=true
# JServ exception, caught internally in jserv
# we suggest to leave it on
log.channel.jservException=true
# Warning channel, it catches all the important
# messages that don't cause JServ to stop, leave it on
log.channel.warning=true
# Servlet log
# All messages logged by servlets. Probably you want
# this one to be switched on.
log.channel.servletLog=true
# Critical errors
# Messages produced by critical events causing jserv to stop
log.channel.critical=true
# Debug channel
# Only for internal debugging purposes
# log.channel.debug=true
#wrapper.classpath=/d3/ord/jlib/ordim.zip
#wrapper.classpath=/d3/ord/jlib/ordhttp.zip
# Oracle XSQL Servlet
wrapper.classpath=/d3/lib/oraclexsql.jar
# Oracle JDBC
wrapper.classpath=/d3/jdbc/lib/classes12.zip
# Oracle XML Parser V2 (with XSLT Engine)
wrapper.classpath=/d3/lib/xmlparserv2.jar
# Oracle XML SQL Components for Java
wrapper.classpath=/d3/rdbms/jlib/xsu12.jar
# XSQLConfig.xml File location
wrapper.classpath=/d3/xdk/admin
# Oracle BC4J
wrapper.classpath=/d3/ord/jlib/ordim.zip
wrapper.classpath=/d3/ord/jlib/ordvir.zip
wrapper.classpath=/d3/ord/jlib/ordhttp.zip
wrapper.classpath=/d3/BC4J/lib/jndi.jar
wrapper.classpath=/d3/BC4J/lib/jbomt.zip
wrapper.classpath=/d3/BC4J/lib/javax_ejb.zip
wrapper.classpath=/d3/BC4J/lib/jdev-rt.jar
wrapper.classpath=/d3/BC4J/lib/jbohtml.zip
wrapper.classpath=/d3/BC4J/lib/jboremote.zip
wrapper.classpath=/d3/BC4J/lib/jdev-cm.jar
wrapper.classpath=/d3/BC4J/lib/jbodomorcl.zip
wrapper.classpath=/d3/BC4J/lib/jboimdomains.zip
wrapper.classpath=/d3/BC4J/lib/collections.jar
wrapper.classpath=/d3/Apache/Apache/htdocs/onlineorders_html
#wrapper.classpath=/d3/Apache/Apache/htdocs/OnlineOrders_html/Onl
ineOrders.jar
# The following classpath entries are necessary for EJBs to run
in IAS or DB when
present
wrapper.classpath=/d3/lib/aurora_client.jar
wrapper.classpath=/d3/lib/vbjorb.jar
wrapper.classpath=/d3/lib/vbjapp.jar
# Oracle Servlet
wrapper.classpath=/d3/lib/servlet.jar
# Oracle Java Server Pages
wrapper.classpath=/d3/jsp/lib/ojsp.jar
# Oracle Util
wrapper.classpath=/d3/jsp/lib/ojsputil.jar
# Oracle Java SQL
wrapper.classpath=/d3/sqlj/lib/translator.zip
# Oracle JDBC
#wrapper.classpath=/d3/jdbc/lib/classes12.zip
# SQLJ runtime
wrapper.classpath=/d3/sqlj/lib/runtime12.zip
# Oracle Messaging
wrapper.classpath=/d3/rdbms/jlib/aqapi.jar
wrapper.classpath=/d3/rdbms/jlib/jmscommon.jar
# OJSP environment settings
#wrapper.env=ORACLE_HOME=/d3
# The next line should be modified to reflect the value of the
SID for your
webserver.
#wrapper.env=ORACLE_SID=cmpdb
#wrapper.env=LD_LIBRARY_PATH=/d3/lib
## Enable the flag below if you are using jdk 1.2.2_05a or above
#wrapper.env=JAVA_COMPILER=NONE
# Advanced Queuing - AQXML
wrapper.classpath=/d3/rdbms/jlib/aqxml.jar
#wrapper.classpath=/d3/rdbms/jlib/xsu12.jar
#wrapper.classpath=/d3/lib/xmlparserv2.jar
wrapper.classpath=/d3/lib/xschema.jar
#wrapper.classpath=/d3/jlib/jndi.jar
wrapper.classpath=/d3/jlib/jta.jar
oemreporting.properties=/d3/Apache/Jserv/oemreporting/oemreportin
g.properties
zones = root, oemreporting
wrapper.classpath=/d3/jlib/share-opt-1_1_9.zip
wrapper.classpath=/d3/jlib/caboshare-opt-1_0_3.zip
wrapper.classpath=/d3/jlib/marlin-opt-1_0_7.zip
wrapper.classpath=/d3/jlib/tecate-opt-1_0_4.zip
wrapper.classpath=/d3/jlib/ocelot-opt-1_0_2.zip
wrapper.classpath=/d3/jlib/regexp.jar
wrapper.classpath=/d3/jlib/sax2.jar
#wrapper.classpath=/d3/jlib/servlet.jar
wrapper.bin.parameters= -DORACLE_HOME=/d3
#wrapper.env=LD_LIBRARY_PATH=/d3/lib32
wrapper.env.copy=DISPLAY
wrapper.bin.parameters=-DORACLE_HOME=/d3
#wrapper.classpath=/d3/lib/vbjorb.jar
#wrapper.classpath=/d3/lib/vbjapp.jar
wrapper.classpath=/d3/classes/classesFromIDLVisi
wrapper.classpath=/d3/jlib/swingall-1_1_1.jar
wrapper.classpath=/d3/jlib/ewtcompat3_3_15.jar
wrapper.classpath=/d3/jlib/ewt-3_3_18.jar
wrapper.classpath=/d3/jlib/share-1_1_9.jar
wrapper.classpath=/d3/jlib/help-3_2_9.jar
wrapper.classpath=/d3/jlib/ice-5_06_3.jar
wrapper.classpath=/d3/jdbc/lib/classes111.zip
wrapper.classpath=/d3/classes
wrapper.classpath=/d3/jlib/oembase-9_0_1.jar
wrapper.classpath=/d3/jlib/oemtools-9_0_1.jar
wrapper.classpath=/d3/jlib
wrapper.classpath=/d3/jlib/javax-ssl-1_1.jar
wrapper.classpath=/d3/jlib/jssl-1_1.jar
wrapper.classpath=/d3/jlib/netcfg.jar
wrapper.classpath=/d3/jlib/dbui-2_1_2.jar
#wrapper.classpath=/d3/lib/aurora_client.jar
#wrapper.classpath=/d3/lib/xmlparserv2.jar
wrapper.classpath=/d3/network/jlib/netmgrm.jar
wrapper.classpath=/d3/network/jlib/netmgr.jar
wrapper.classpath=/d3/network/tools
wrapper.classpath=/d3/jlib/kodiak-1_2_1.jar
wrapper.classpath=/d3/sysman/jlib/netchart360.jar
wrapper.classpath=/d3/jlib/pfjbean.jar
wrapper.env=SHLIB_PATH=/d3/lib32
wrapper.env=LIBPATH=/d3/lib32
wrapper.classpath=/d3/ultrasearch/lib/isearch_midtier.jar
wrapper.classpath=/d3/ultrasearch/lib/isearch_query.jar
wrapper.classpath=/d3/ultrasearch/lib/jgl3.1.0.jar
wrapper.classpath=/d3/lib/mail.jar
wrapper.classpath=/d3/lib/activation.jar
wrapper.classpath=/d3/ultrasearch/jsp/admin/config
# Additions for iFS
## DO NOT REMOVE OR ALTER THE FOLLOWING LINE ....
# iFS true
# Uncomment if you want to use the same Jserv as other
applications
wrapper.classpath=/d3/9ifs/custom_classes
wrapper.classpath=/d3/9ifs/settings
wrapper.classpath=/d3/9ifs/lib/adk.jar
wrapper.classpath=/d3/9ifs/lib/email.jar
wrapper.classpath=/d3/9ifs/lib/http.jar
wrapper.classpath=/d3/9ifs/lib/release.jar
wrapper.classpath=/d3/9ifs/lib/repos.jar
wrapper.classpath=/d3/9ifs/lib/utils.jar
wrapper.classpath=/d3/9ifs/lib/webui.jar
wrapper.classpath=/d3/9ifs/lib/provider.jar
wrapper.classpath=/d3/jlib/javax-ssl-1_2.jar
wrapper.classpath=/d3/jlib/jssl-1_2.jar
wrapper.env=ORACLE_HOME=/d3
wrapper.env=ORACLE_SID=cmpdb
wrapper.env=LD_LIBRARY_PATH=/d3/lib:/d3/ctx/lib:/d3/lib32
wrapper.env=NLS_LANG=.US7ASCII
## Additions for the iFS zone
# Uncomment if you want to use the same Jserv as other
applications
zones=ifs
ifs.properties=/d3/Apache/Jserv/etc/ifs.properties
# End iFS sectionAbout your home page; Manually set up Firefox with the window(s) and tab(s)
the way you want them to be. Then;
'''''Firefox Options > General > Homepage'''''.
Press the button labeled ''''Use Current'''.'
=====================================
Open a new window or tab. In the address bar, type '''''about:config'''''.
If a warning screen comes up, press the '''''Be Careful''''' button.
This is where Firefox finds information it needs to run.
At the top of the screen is a search bar. Enter '''''browser.newtab.url'''''
and press enter. '''''browser.newtab.url'''''
tells Firefox what to show when a new tab is opened.
If you want, right click and select '''''Modify'''''. You can change the
setting to;<BR><BR>about:home (Firefox default home page),<BR>
about:newtab (shows the sites most visited),<BR>
about:blank (a blank page),<BR>
or you can enter any web page you want.<BR><BR>
The same instructions are used for the new window setting, listed as
'''''browser.startup.homepage'''''. -
Problem with JDBC Comm Channel from UNIX PI Installation.
Dear Gurus:
Inside a standard scenario, we have a receiver comm channel which use JDBC adapter type to connect to a MS Access remote database.
The database connection is made like this:
JDBC Driver: sun.jdbc.odbc.JdbcOdbcDriver
Connection: jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=//10.96.0.10/c$/app/appdb.mdb
Working from a Windows 2003 PI installation, everything works fine..
But we recently have finished a Heterogeneous migration from Windows 2003 + SQL server to UNIX AIX + Oracle servers and that particular interface does not work anymore.
Is there a way to connect to a MS Access from inside a UNIX PI installation..? Is there a native JDBC or ODBC driver that we can use to fix our problem...?
Waiting for your help. Best regards.
Eduardo.Hi,
In the JDBC receiver CC, Advanced-->Advanced Mode, use poolWaitingTime and taskTimeout parameters and specify
some time using seconds.
Babu -
Problems with JDBC on personal Java
Hi,
I am a PhD student in Napier University and work with PDAs and Java. I have installed Jeode 1.9 Runtime Environment which is a certified implementation of 1.2 Personal Java on my HP IPAQ PDA.
I have the following code that works fine on my desktop, however produces an exception on my PDA (ERROR: java.lang.ClassNotFoundException: sun/jdbc/odbc/JdbcOdbcDriver)
Thanks for your help!!!
The code:
import java.io.*;
import java.net.*;
import java.util.*;
import java.sql.*;
public class WhoAmI2
public static void main (String[] args)
String LocalIP = new String();
String LocalHome = new String();
try
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/* the next 3 lines are Step 2 method 2 from above - you could use the direct
access method (Step 2 method 1) istead if you wanted */
String filename = "c:/CompInfo.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}"; // add on to the end
// now we can get the connection from the DriverManager
Connection con = DriverManager.getConnection( database ,"","");
Statement s = con.createStatement();
s.execute("create table Details ( OSName String, OSArch String, OSVer String, JavRunNam String, JavVMVer String, UserName String, UserCountry String, UserLang String, JavVMSpec String, JavRunVer String, JavVer String, Graphics String, SunArchDat String, SunCPUEnd String, SunUni String, SunCPUISA String, MainIP String, MainHost String, LocalIP String, LocalHost String )"); // create a table
try
// Properties p = new Properties(System.getProperties());
// System.getProperties().list(System.out);
InetAddress localaddr = InetAddress.getLocalHost () ;
System.out.println ("OS Name : \t\t" + System.getProperty("os.name")) ;
System.out.println ("OS Architecture : \t" + System.getProperty("os.arch")) ;
System.out.println ("OS Version : \t\t" + System.getProperty("os.version")) ;
System.out.println () ;
System.out.println ("Java Runtime Name : \t" + System.getProperty("java.runtime.name")) ;
System.out.println ("Java VM Version : \t" + System.getProperty("java.vm.version")) ;
System.out.println () ;
System.out.println ("Username : \t\t" + System.getProperty("user.name")) ;
System.out.println ("User Country : \t\t" + System.getProperty("user.country")) ;
System.out.println ("User Language : \t" + System.getProperty("user.language")) ;
System.out.println () ;
System.out.println ("Java VM Spec : \t\t" + System.getProperty("java.vm.specification.name")) ;
System.out.println ("Java Runtime Version : \t" + System.getProperty("java.runtime.version")) ;
System.out.println ("Java Version : \t\t" + System.getProperty("java.version")) ;
System.out.println ("Graphics : \t\t" + System.getProperty("java.awt.graphicsenv")) ;
System.out.println () ;
System.out.println ("Sun Arch Datamodel : \t" + System.getProperty("sun.arch.data.model")) ;
System.out.println ("Sun CPU Endian : \t" + System.getProperty("sun.cpu.endian")) ;
System.out.println ("Sun Unicode : \t\t" + System.getProperty("sun.io.unicode.encoding")) ;
System.out.println ("Sun CPU ISA : \t\t" + System.getProperty("sun.cpu.isalist")) ;
System.out.println () ;
System.out.println ( "main Local IP Address : " + localaddr.getHostAddress () );
System.out.println ( "main Local hostname : " + localaddr.getHostName () );
System.out.println () ;
InetAddress[] localaddrs = InetAddress.getAllByName ( "localhost" ) ;
for ( int i=0 ; i<localaddrs.length ; i++ )
if ( ! localaddrs[ i ].equals( localaddr ) )
System.out.println ( "alt Local IP Address : " + localaddrs[ i].getHostAddress () );
System.out.println ( "alt Local hostname : " + localaddrs[ i].getHostName () );
System.out.println () ;
LocalIP=localaddrs[ i].getHostAddress ();I have the following code that works fine on my
desktop, however produces an exception on my PDA
(ERROR: java.lang.ClassNotFoundException:
sun/jdbc/odbc/JdbcOdbcDriver)It looks as though Jeode doesn't come with the JDBC/ODBC bridge JDBC driver. You'll need to find another JDBC driver to use.
Maybe you are looking for
-
List of apps will not go to next page
I found a small bug, when I am viewing a list of all the apps in a category, I am unable to go to the next page. Such as all the free apps in the Food category (in the iTunes appstore). At the bottom of the page is a next button and numbers of the
-
I want to remove the yahoo search bar from Firefox and use the google search bar.
I did go to about:config and made the keyword.URL to default (Google). It is not getting affected. Please help me to know how can I set it in Firefox. I need to remove yahoo search from my Firefox and use the Google search. I did the following steps
-
but to update to 10.7 I need the mac app store other than that I am fully upgraded. I reinstalled from my latest cd 10.6 upgrade then ran software update to get the app store but it won't open with the message above I edited the minimum version in th
-
Premiere Elements 13 error message ' software appears to be counteerfeit'
I bought the 64 bit Premiere Elements 13 from the official Adobe site yesterday but on installation an error message came up saying 'adobe genuine software verification failure...appears to be counterfeit' Unlike similar issues on other parts of the
-
OTR CREATION IN BATCH MODE / AUTOMATIC "CIF" CUSTOMER IMMEDIATELY AFTER CREATION IN ECC
Dear All, My scenario is: We have a Web dynpro customized screen for Customer Creation and Sales Order creation in SAP ECC. This screen first send data to CRM where Customer is created and Customer code is flowing back to my screen immediately. Using