Hello,
    We are experiencing severe problems when running MySql with 
INNODB in a  production environment.  Applications which work 
fine under light load fail when under production load.

Our MySql environment is as follows:
OS Platform        : Windows 2000 Service Pack 2
Machine description:
Compiler           : VC++ 6.0
Architecture       : i686
Total Memory       : 2097151 KB RAM
Server Info                        3.23.54-max-nt-log
have_innodb                        YES
innodb_additional_mem_pool_size    104857600
innodb_buffer_pool_size            1048576000
innodb_data_file_path              ibdata1
innodb_data_home_dir               
innodb_file_io_threads             4
innodb_force_recovery              0
innodb_thread_concurrency          8
innodb_flush_log_at_trx_commit     1
innodb_fast_shutdown               ON
innodb_flush_method                
innodb_lock_wait_timeout           50
innodb_log_arch_dir                
innodb_log_archive                 OFF
innodb_log_buffer_size             1048576
innodb_log_file_size               5242880
innodb_log_files_in_group          2
innodb_log_group_home_dir          .\
innodb_mirrored_log_groups         1


We have a large block of SQL statements (about 50) which we 
would like to treat as  one transaction.  The software works fine 
when running in a limited environment,  but issues intermittent 
errors when running in production.

All the errors follow the pattern of "java.sql.SQLException: General
error: Table 'productsprovided'  was not locked with LOCK 
TABLES". 

The table name will be different at various times (even though the 
code being executed is always the same), but the error is always 
talking about a failure to lock the tables.

 We are using  two different connections within this one processing 
loop. The one connection shows up as number 7 below, while
the other is number 12. Our expectation is that these two 
connections will operate independently, even though the Java code 
is working with them both within our "transaction".  Our expectation 
is that a rollback on connection 7 will NOT effect the activities 
which had taken place on connection 12 across this same
timespan. Along the same lines we would expect the lock and 
unlock on connection 12 will not affect the transaction under way on 
connection 7. 

Our SQL in this application follows the following pattern. (the 
following is a section from the MysQL log with just one instance of 
the application running):

030125 20:24:29       7 Query       SET autocommit=0
                      7 Query       BEGIN
                      7 Query       Select * from accountsprovided Where
ExternalID='I06'AND FinServProvID = 'C33'
                      7 Query       UPDATE accountsprovided SET
Enabled='Y' WHERE  AccountID = 'CKCBSBF2994309'
                      7 Query       Select * from account Where AccountID
=  'CKCBSBF2994309'
                      7 Query       UPDATE account SET 
PreLimit=10000.00 WHERE  AccountID = 'CKCBSBF2994309'

                     12 Query       Lock Table Control Write
                     12 Query       Select * From Control
                     12 Query       Update Control set NextID = 6999244
                     12 Query       Unlock Tables

                      7 Query       INSERT INTO productsowned (
VestedValue, Quantity ) VALUES ( 7293.90, 7293.9)

...  About another 40 lines of SQL following this same general 
pattern but using different tables.

                      7 Query       Update cachestatus Set UpdatedOn =
null, UpdatedBy =  'XMLWarehouseLoader' Where PrimaryID = 
'CKCBSBF2994310' AND SecondaryID = 'CKCBSBF2994311'
                      7 Query       COMMIT
                      7 Query       SET autocommit=1

    We are unable to determine what other activities taking place on 
the server/tables are causing the conflict. Other applications are 
running against this database which are doing allot of Selects and a 
few updates, all without any explicit transaction control 
(autocommit=1). 

     Will someone please provide us with some insights into what we 
are doing wrong?

Thanks

--
Steff McGonagle
Envisage Information Systems, Inc.

Phone (315) 497-9202 x16
www.EnvisageSystems.com
www.Enveritus.com



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to