Linuxのプロセス/スレッド・モデルには、単一のプロセスに2つの接続が関連付けられる可能性があるという問題があります。これは、TimesTenエラー863、予期せずにトランザクションがロールバックされる、アプリケーションがハングアップするなどの原因になります。
アプリケーションのメイン・プロセスが、接続を作成するスレッドを生成すると、TimesTenデーモンによって、メイン・プロセスのPIDではなく、生成されたスレッドのPIDが接続ソケットと関連付けられます。ただし、そのソケットはメイン・プロセスに連結されます。
アプリケーションが、接続、切断および終了を繰り返すスレッドを生成した場合、その接続に関連付けられた生成済のスレッドは、メイン・プロセスがまだアクティブなうちに終了する可能性があります。終了したスレッドのPIDが新しいプロセスに割り当てられると、TimesTenデーモンは2つのソケット接続を同じPIDに関連付けることになります。TimesTenデーモンでは、この2つの接続が区別できないため、1つの接続が終了すると、残りのもう1つの接続も同じプロセスの一部であるとみなし、その接続に関連付けられているトランザクションをロールバックしようとします。
この問題を回避するには、スレッドを作成する前にマスター接続を作成し、アプリケーションが終了するまでマスター接続をオープンしたままにしておくようにアプリケーションを変更します。追加の接続は、マスター接続のプロセスに関連付けられます。更新したアプリケーションを実行する前に、TimesTenデーモンを停止して再起動する必要があります。