Hello Alexander,

It seems, that the problems with inserted/updated rows are still there.

===================================================
Statement stmt = connect.createStatement(
  RsultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(
  "SELECT ID, CONTENT FROM RESULTTEST ORDER BY ID");

rs.moveToInsertRow();
rs.updateInt(1, 1);
rs.updateString(2, "Row: 1");
rs.insertRow();
rs.first(); // still throws: "The method cancelRowUpdates cannot be called while 
positioned at the insert row"

===================================================
Statement stmt = connect.createStatement(
  RsultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(
  "SELECT ID, CONTENT FROM RESULTTEST ORDER BY ID");

rs.moveToInsertRow();
rs.updateInt(1, 1);
rs.updateString(2, "Row: 1");
rs.insertRow();
rs.moveToCurrentRow(); // throws: "com.sap.dbtech.jdbc.exceptions.JDBCDriverException: 
SAP DBTech JDBC: Result set is not updatable."

===================================================
Statement stmt = connect.createStatement(
  RsultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(
  "SELECT ID, CONTENT FROM RESULTTEST ORDER BY ID");

if ( rs.first() ) {
  rs.updateString(2, "UPDATED");
  rs.updateRow();
  rs.refreshRow();
}
rs.beforeFirst();
while ( rs.next() )
 System.out.println(rs.getObject(1) + "\t|" + rs.getObject(2));

Shows content, but changes are not visible!
===================================================

Any hints?
Regards,
Kolja

-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]Im Auftrag von Schroeder,
Alexander
Gesendet: Donnerstag, 9. Januar 2003 11:46
An: [EMAIL PROTECTED]
Betreff: Ann: Updated JDBC Driver (was ftp file naming (general))


Hello all,

an updated JDBC driver can be found at:

ftp://ftp.sap.com/pub/sapdb/bin/java/sapdb-jdbc-bin-7.4.04.00c.jar

It solves the following issues:

---------------------------------------------------------------------------------------------
Error messages in diagnostic files:
diagnostic file: none 
Error message: none (illegal content in long values)

Appearance: 
A long columns contains illegal content in some special circumstances 
(see next point). The illegal content may be a JDBC cursor name 
("JDBC_CURSOR_<number>") or the string "DROP PARSEID".

Preconditions and circumstances
The error occures in PreparedStatement.executeBatch() when the kernel sends a 
"-8 Parse Again" and an internal JDBC cache is filled with old cursors that must 
be closed. This is inside the JDBC driver and cannot be checked from an application. 
So, you don't know that you run into this problem.

Probability that the error occurs
The probability is not very high, because a "-8 Parse Again" 
in conjunction whith a full cursor cache is very seldom. 

Workaround
none, update of the JDBC driver needed.

Further documentation
none
---------------------------------------------------------------------------------------------
Error messages in diagnostic files:
diagnostic file: none 
Error message: none (memory leak)

Appearance: 
Garbage Collection of unclosed resultset objects in conjunction with closing 
a connection leads to a memory leak inside the database kernel.

Preconditions and circumstances
The garbage collection of the java virtual machine runs the finalize method of 
unclosed 
resultset objects. At the same time the application closes the corresponding 
connection.
 Then the jdbc driver will send a combined "commit work release" and 
"close cursor <cursorname>"-order to the database kernel. If the kernel 
process closing the cursor after closing the connection a memory leak inside 
the database kernel will occur.

Probability that the error occurs
The probability of this memory leak is high in applications which opens/closes 
connections very often and using the garbage collector for closing resultsets. 
It is low in applications which uses the resultset.close() method.

Workaround
Decrease the number of opening/closing a connection. U
sing ResultSet.close() for closing your resltsets.  

Further documentation
none
---------------------------------------------------------------------------------------------
Preconditions and circumstances:

The method moveToCurrentRow was not implemented and
always throws an exception. Also the navigational methods
throw exceptions after an insert has taken place.

Solution to the problem:
A software update is necessary. 

Probability that the error occurs:
Always when this method is used.

Workaround
none. 
---------------------------------------------------------------------------------------------
Preconditions and circumstances:

In result set meta data, the column class name for 
INTEGER columns returned is java.lang.Integer,
where the returned class of getObject is 
java.math.BigDecimal

Solution to the problem:
A software update is necessary. 

Now the getObject method returns a java.lang.Integer in this
case.

Probability that the error occurs:
Always when this method is used.

Workaround:
none 
---------------------------------------------------------------------------------------------
Preconditions and circumstances:

The method setTimestamp(int, java.sql.Timestamp) of a prepared statement may 
truncate milliseconds on JDKs with a version less than 1.4.1.

Solution to the problem:
A software update is necessary. 

Now the milliseconds are transferred to the database.

Probability that the error occurs:
Always when this method is used.

Workaround:
Use the setTimestamp(int, Timestamp, Calendar) method 
with a Calendar of null.
---------------------------------------------------------------------------------------------
Preconditions and circumstances:
The ConnectionEventListener.connectionErrorOccurred()
method is called for simple SQL errors. 

A connection pool thus would kill the connection at
a wrong point in time.

Solution to the problem:
A software update is necessary.

Only errors releasing the session, and rolling back the 
work are valid culprits for calling this method. These 
errors are:

 -904 Space for result tables exhausted
  700 Session inactivity timeout (work rolled back)
  710 Session terminated by shutdown (work rolled back)
  750 Too many SQL statements (work rolled back)

and their synonyms (-70, -71, -75).

Probability that the error occurs:
On all SQL errors that use a pooled connection.

Workaround:
none.
---------------------------------------------------------------------------------------------
Feature:
The class com.sap.dbtech.jdbcext.DataSourceSapDBFactory 
can now be used as javax.naming.spi.ObjectFactory implementtaion to 
retrieve the DataSource, ConnectionPoolDataSource and XADataSource.
---------------------------------------------------------------------------------------------

Regarding the nameing of the links and files:

The link to 'sapdbc.jar' will always point to the lastest version we
consider stable. There may be more files named sapdb-jdbc-bin-X.X.XX.XXX.jar,
but the sapdbc.jar should be identical to the topmost or an older version.
The situation that was found was not intended 

The 7.3 code base of the driver has been obsoleted, thus this version is
valid for all released (and the links are pointing according to this).

You may get the build number of the driver by calling it at the command line:

  java -jar sapdbc.jar -V

A higher number in the last 12 digits means a newer version. Internally, only this
number is the interesting one to us when checking versions.

> -----Original Message-----
> From: Sven Köhler [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, January 09, 2003 2:07 AM
> To: [EMAIL PROTECTED]
> Subject: ftp file naming (jdbc)
> 
> 
> hi,
> 
> in ftp://ftp.sap.com/pub/sapdb/bin/java/ i found a 
> sapdb-jdbc-bin-7.4.04.00c.jar (330k) and sapdbc.jar (332k).
> 
> sapdbc.jar seems newer than 7.4.4.0c, so what version is this?
> 7.4.4.0d?
> 
> why didn't you include the full version in the file-name?
> 
> thx
>    Sven
> 
> 
> _______________________________________________
> sapdb.general mailing list
> [EMAIL PROTECTED]
> http://listserv.sap.com/mailman/listinfo/sapdb.general
> 
_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general


_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to