簡體   English   中英

使用Oracle Internet Directory的連接池

[英]Connection Pooling with Oracle Internet Directory

我正在使用Oracle對JNDI的Java API擴展來訪問Oracle Internet Directory 11g(ldapjclnt11.jar庫)。 通過調用ConnectionUtil.getDefaultDirCtx()創建新的目錄上下文(連接)。

我的問題是:用於創建與OID的連接的這種機制是否對JNDI連接使用某種連接池? 如果沒有,是否可以合並連接?

我將同時通過OID認證數百個用戶,並且我擔心如果不合並OID連接會降低性能。

您的擔心可能是有根據的:池化可以減少垃圾收集和套接字連接的暫停時間,但是我強烈建議您對照VisualVM之類的分析器檢查您的假設。 我曾經解決的每個性能問題都不是我想的那樣。 不要對您的代碼盲目猜測!

假設您使用的是Sun / Oracle JVM,則有一個屬性可以啟用透明池:

Hashtable env = new Hashtable();
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=myroot");
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put("com.sun.jndi.ldap.connect.pool", "true");
DirContext ctx = new InitialDirContext(env);

ConnectionUtil類不允許設置此屬性,但是如果必須使用ConnectionUtil,則可以嘗試在JVM上設置以下屬性:

-Dcom.sun.jndi.ldap.connect.pool=true

不確定是否可以。 您必須使用wireshark或其他方法來驗證行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM