The reason for this is that the row records to update are not locked. Will mysql= "Select Filebody from FileList where filename=?" Add the SQL statement in the for update. such as: mysql= "select Filebody from FileList where filename=? For update ".
Test WebLogic Yesterday Test connection pool situation, multiple refreshes, connection does not release, and then check the code, the connection of the place in finally inside turned off Ah, or do not release, suddenly think of SQL statements in the for update came because the newspaper "Java.io.IOException: ORA-22920: The line with LOB values is not locked "error, the web search solution is to add a SELECT statement for update, remove, continue testing, the connection is OK!" The original for update is to lock the row, unlock can only be unlocked in commit or rollback, because Select does not execute commit, so cannot unlock, select a record to lock one, so the connection will not be released! The commit function is to commit a transaction. In SQL Plus, after executing a DML statement such as INSERT, Delete, UPDATE, a commit commits the result to the database, or is rolled back with rollback, without altering the database and invalidating the DDL. When writing a program, there are also corresponding methods.
java.io.ioexception:ora-22920: Row with LOB value not locked