To further optimize performance, SAP JCo itself synchronizes access to JCO.Pool and JCO.Repository objects. No other access to objects is synchronized.
In a multi-thread environment, distribution of objects (for example, JCO.Table objects) between different threads must be implemented carefully. Do not use JCO.Client objects that have been requested by a connection pool in any other thread. Also note that it is not possible to make multiple concurrent SAP calls for the same direct connection.