1. Version 7.1
2. The syntax is DELETE FROM table-name (without a WHERE clause) to delete all rows in the table. There is no * in a delete statement because the rows are deleted, not the columns.
3. You are in luck, at least if you use static SQL.
Releasing locks: If LOCK TABLE is a static SQL statement, the RELEASE option of bind determines when DB2 releases a lock. For RELEASE (COMMIT), DB2 releases the lock at the next commit point. For RELEASE(DEALLOCATE), DB2 releases the lock when the plan is deallocated (the application ends).
If LOCK TABLE is a dynamic SQL statement, DB2 uses RELEASE(COMMIT) and releases the lock at the next commit point, unless the table or table space is referenced by cached dynamic statements. Caching allows DB2 to keep prepared statements in memory past commit points. In this case, DB2 holds the lock until deallocation or until the commit after the prepared statements are freed from memory. Under some conditions, if a lock is held past a commit point, DB2 demotes the lock state of a segmented table or a nonsegmented table space to an intent lock at the commit point.
The other programs will never get a +100 if you lock in exclusive mode. The will probably get a -911 (or something similar) that indicates a timeout after waiting for the lock to be released and then finally giving up.