I have put the source for the Solid driver we're using with 3.4 at: http://www.rubylane.com/public/rlsolid
It has a few changes: - max data element size is 32K instead of 8K - supports SET AUTOCOMMIT ON/OFF - adds ns_db resethandle call to initialize a handle (was already in AS, but not implemented for Solid) - does "rollback work" statements when a handle is released/acquired. This last item is important with Solid, because Solid establishes DB states when a select is executed. After a select, you will not see subsequent changes to the database as long as you use this handle. It is important that when a thread exits, a rollback is executed so that when a new thread starts and uses this handle, it will see the current state of the database. In AS 2.3.3 there apparently are some cases where resethandle is not being called when the handle is released back to the DB pool. Maybe in scheduled procs - I dunno. So right after we call ns_db gethandle, we call ns_db resethandle to do a rollback. This is redundant in most cases, but important if the resethandle call is somehow bypassed by AS due to this weird case. Jim
