2

OpenLDAP クライアント ライブラリを使用して LDAP サーバーに接続しています。問題は、しばらくアクティビティがない場合、サーバー (または途中のファイアウォール) が TCP 接続を切断することです。

「キープアライブ」の現在の実装は、時々 baseDN を検索するだけです - 何か良いアイデアはありますか?

4

3 に答える 3

2

LDAPAbandonが機能する可能性があります。

if (ldap_abandon(ld, 0, sctrls, cctrls) != LDAP_SUCCESS)
    {
       /* handle ldap error */
    };

OpenLDAPメーリングリストでこれについての議論がありました:

http://www.openldap.org/lists/openldap-devel/200905/msg00008.html

簡単に言うと、放棄要求はサーバーにメッセージを送信しますが、サーバーは放棄要求に対する応答をクライアントに送り返しません。ゼロはLDAP要求の有効なMSGIDではありません。ゼロは無効なMSGIDであり、サーバーは放棄要求に応答しないため、理論的には、サーバーはmsgidゼロの放棄要求を無視します。これにより、TCPソケットでアクティビティが提供され、ファイアウォールが接続を切断するのを防ぎます。

見る:

  • RFC 4511、セクション4.11:操作の放棄
  • RFC 4511、セクション4.1.1.1:MessageID

https://www.rfc-editor.org/rfc/rfc4511

于 2011-10-04T17:06:00.697 に答える
2

LDAP_OPT_RECONNECTOpenLdap では使用できません

于 2010-04-07T11:12:19.013 に答える
0

唯一の代替手段は再接続のようです:

ldap_set_option( ld, LDAP_OPT_RECONNECT, LDAP_OPT_ON );
于 2008-12-02T20:39:54.590 に答える