The configuration
OS-Windows Server 2003 R2 x86, SP2 Oracle 10gR2 Ent x86 (10.2.0.5.0) Apex 4.01Oracle BI configuration:
Oracle Business Intelligence Product Version 10.1.3.4.1 (Build 090414.1900) Physical Presentation Catalog Path \\?\C:\OracleBIData\web\catalog\samplesales\root Oracle BI Server Data Source AnalyticsWeb Available Paging Memory (MB) 1795 Available Virtual Address Space (MB) 2939
The problem
When I run XML Publsher report (from Apex, using predefined RTF template) I got a PDF file with the following content:500 Internal Server Error Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.Quick look in XML publisher's log file (C:\OracleBI\oc4j_bi\j2ee\home\application-deployments\xmlpserver\application.log) showed me an error:
11/07/06 15:16:28.171 xmlpserver: Servlet error java.lang.IllegalStateException: IOException: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.EvermindHttpServletRequest.getParameter(EvermindHttpServletRequest.java:2295) at oracle.apps.xdo.servlet.Converter.doPost(Converter.java:64) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239) at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34) at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298) at java.lang.Thread.run(Thread.java:595)As you see from highlited row was the core of the problem.
The solution
Solution was found on MS knowledge base page. There stand the very same error with solution described as:The default maximum number of ephemeral TCP ports is 5000 in the products that are included in the "Applies to" section. A new parameter has been added in these products. To increase the maximum number of ephemeral ports, follow these steps: Locate the following subkey in the registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters Edit menu, click New, and then add the following registry entry: Value Name: MaxUserPort Value Type: DWORD Value data: 65534 Valid Range: 5000-65534 (decimal) Default: 0x1388 (5000 decimal)in our case there was no registry entry (5000 is default) so we set 60000 as a new value.
After we restarted server, XML Publisher report run with no errors.
The End
Java configuration problems has a world wide Google references. Here is AYA Java problem, which arise in Oracle BI on Windows. This one was successfully solved.So I wrote this post more as a quick guide to someone else in the future.
Cheers!
P.S.
After few days I got mail from other MS consultant, who inform me that in MS Exchange installations steps one of them is setup MaxUserPort value to 60000, as described.
:-)