[jcifs] Failover with jCIFS NTLM authentication

Jan Kundmüller Jan.Kundmueller at eulerhermes.com
Mon May 14 12:36:03 GMT 2007



Hello all,

We have setup a test DNS record that is used to have a "round robin" load
balancing/failover (see also http://en.wikipedia.org/wiki/Round_robin_dns )
for our jCIFS NTLM authentication.

To show what is meant, here a mocked nslookup (ad1, ad2, ad3 stand for the
IP adresses of Windows AD2003 DCs):
root at ourhost:/home/root#nslookup testdc
Server:  ad1.gad.intra.net
Address:  ad1

Name:    testdc.intra.net
Addresses: ad1, ad2, ad3

Unfortunately the jCIFS NTLM authentication does not work with that
configuration. We get the error message: "jcifs.smb.SmbException: A
duplicate name exists on the network.".
Exception is attached. We are using the "jCIFS 1.2.9 released" version with
a fixed domain controller (resolved via DNS) and preauthentication
(required for SMB signing).

Any thoughts, comments, ideas (maybe another way to have failover with
jCIFS NTLM and DNS, but not with WINS)? Thanks ahead!
Best regards, Jan

Exception:
[13.04.07 08:27:14:009 CEST] 2a6e9490 WebGroup      E SRVE0026E:
[Servlet-Fehler]-[A duplicate name exists on the network.]:
jcifs.smb.SmbException: A duplicate name exists on the network.
      at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:510)
      at jcifs.smb.SmbTransport.send(SmbTransport.java:610)
      at jcifs.smb.SmbSession.sessionSetup(SmbSession.java:269)
      at jcifs.smb.SmbSession.send(SmbSession.java:225)
      at jcifs.smb.SmbTree.treeConnect(SmbTree.java:147)
      at jcifs.smb.SmbSession.sessionSetup(SmbSession.java:262)
      at jcifs.smb.SmbSession.send(SmbSession.java:225)
      at jcifs.smb.SmbTree.treeConnect(SmbTree.java:147)
      at jcifs.smb.SmbSession.logon(SmbSession.java:161)
      at jcifs.smb.SmbSession.logon(SmbSession.java:154)
      at jcifs.http.NtlmServlet.service(NtlmServlet.java:137)
      at jcifs.http.NtlmJspBase.service(NtlmJspBase.java:62)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at
com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
      at
com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:662)
      at
com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:760)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at
com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
      at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
      at
com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
      at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
      at
com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
      at
com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
      at
com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
      at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
      at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
      at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
      at
com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
      at
com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
      at
com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
      at
com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:114)
      at
com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
      at
com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
      at
com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
      at
com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
      at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:443)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)






Euler Hermes is the world's premier credit insurer, offering solutions
for the management of trade receivables, from credit insurance and
financing of trade receivables to bonding and guarantees. Euler
Hermes is a subsidiary of AGF and a member of Allianz.
www.eulerhermes.com

                 -------------------------------------

This e-mail may contain confidential and/or privileged information. If
you are not the intended recipient or have received this e-mail in error,
notify the sender immediately and destroy this e-mail. Any unauthorised
use, copying, disclosure or distribution of the contents of this e-mail
is strictly forbidden and may be unlawful.

Read our full e-mail disclaimer statement and monitoring policy
(http://www.eulerhermes.com/group/en/disclaim/index.html) before
taking any action based on the contents of this e-mail.
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the jcifs mailing list