MySQL 接続ハンドルはステートレスではなく、そもそもネットワーク コードを XPC に分離することの全体的なポイントは安定性であるため、ステートレスであることについて心配する必要はありません。望ましいと考えられていますが、必須ではありません。引用するには:
Because an XPC service can be terminated suddenly at any time, it must be designed
to hold on to minimal state—ideally, your service should be completely stateless,
although this is not always possible.
XPC ドキュメント
これは、常に可能であるとは限らないケースの 1 つです。MySQL 接続は独自の状態を保持するため、ステートレスのままにしたい場合は、すべての資格情報を毎回アトミック操作として XPC に渡すのが最善の策ですが、これは非効率的です。
代わりに、検証のために XPC 内のテーブルで検索できる、アプリと XPC の間でやり取りされるある種の「ハンドル」を作成することをお勧めします (XPC が終了して再度開始された場合中断されたことを通知し、エラーを返すことができます)。次に、アプリケーション側で、操作のためにそのハンドルを送信し、必要に応じて XPC から「ハンドル」を再取得することにより、内部 API ハンドルを適切に再度開くことができます。これは、データベース呼び出しを行うコードで直接行うことができますが、XPC が死にやすい場合は、内部ライブラリに入れて資格情報を維持し、XPC を再起動して再度開始できるようにする必要があります。上位レベルのコードを気にせずに接続できます。
いずれにせよ、XPC への呼び出しを SQL トランザクション レベルで維持する必要があります。これは、MySQL 接続が XPC への呼び出しの間に中断される可能性があり、それによってロールバックが発生し、最初からやり直す必要があるためです。