Loading...
Loading...
There is no visibility of the call data in the Datastore CISCO_VOIP_CUCM_CDR table. - The Call Overview reports in the frontend are blank: - The tomcat catalina log contains the following message on startup: WARNING: Can't create database accessor FLOW-TF-VOIP:{ mapping=FLOW-CISCO-CDR.xml, table=CISCO_VOIP_CUCM_CDR } org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (cannot retrieve server endpoint !) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at com.watch4net.apg.tracker.sql.TrackedDataSource.getConnection(TrackedDataSource.java:57) at com.watch4net.apg.v2.modules.database.GenericFlow.FlowDatabaseAccessor.<init>(SourceFile:158) at com.watch4net.apg.v2.modules.database.FLOW.DatabaseAccessor.<init>(SourceFile:183) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.watch4net.apg.v2.gui.database.DefaultDedicatedDatabaseAccessorFactory.a(SourceFile:47) at com.watch4net.apg.v2.gui.database.util.j.a(SourceFile:290) at com.watch4net.apg.v2.gui.database.JNDIDedicatedDatabaseAccessorProvider.a(SourceFile:109) at com.watch4net.apg.v2.gui.database.JNDIDedicatedDatabaseAccessorProvider.a(SourceFile:136) at com.watch4net.apg.v2.gui.database.DefaultGlobalDatabaseAccesssor.a(SourceFile:91) at com.watch4net.apg.v2.gui.database.c.c(SourceFile:85) at com.watch4net.apg.v2.gui.database.c.a(SourceFile:103) at com.watch4net.apg.v2.gui.database.DatabaseCheckingTask$ApplicationListener.onStartup(SourceFile:48) at com.watch4net.apg.v2.gui.bootstrap.Main.startup(SourceFile:178) at com.watch4net.apg.v2.gui.servlet.listener.ApgListener.contextInitialized(SourceFile:477) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065) at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.watch4net.apg.v2.tomcat.forked.Bootstrap.launch(Bootstrap.java:59) at com.watch4net.apg.v2.tomcat.forked.Bootstrap.main(Bootstrap.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.watch4net.component.loader.util.ComponentLauncher.invoke(ComponentLauncher.java:108) at com.watch4net.component.loader.util.ComponentLauncher.main(ComponentLauncher.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.watch4net.apg.module.plugin.service.Bootstrap.main(Bootstrap.java:59) Caused by: java.sql.SQLException: cannot retrieve server endpoint ! at com.watch4net.x100.impl.X100NetConnectionFactory.getConnection(X100NetConnectionFactory.java:62) at com.watch4net.x100.jdbc.Driver.connect(Driver.java:171) at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ... 60 more Caused by: com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 403: Forbidden at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:296) at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:245) at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:203) at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:122) at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:123) at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:626) at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:585) at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:570) at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:467) at com.sun.xml.internal.ws.client.Stub.process(Stub.java:308) at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:163) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78) at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135) at com.sun.proxy.$Proxy32.getServerEndpoint(Unknown Source) at com.watch4net.x100.impl.X100NetConnectionFactory.getConnection(X100NetConnectionFactory.java:60) ... 65 more - There are no errors in the event processing manager instance cisco-voip-cucm logs. - Connecting to the datastore using the datastore-client confirms that there is CDR data present in the database: /opt/APG/bin/datastore-client.sh Welcome to APG-Datastore 5.1 CLI (Ctrl+D to exit). Connected to jdbc:x100://localhost:50150/ ! sql> select * from CISCO_VOIP_CUCM_CDR; - All the installation steps in cisco_install_302_000_667_01.pdf (located in Centralized Management -> Solution Packs -> Networking -> Cisco Unified Communication Manager) have been followed.
The resource definition for this connection in server.xml, is missing the full path. The Datastore instance is missing from the URL path:<Resource name="jdbc/FLOW-TF-VOIP" auth="Container" type="javax.sql.DataSource" maxActive="10" maxIdle="10" validationQuery="SELECT 1" testOnBorrow="false" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000" maxWait="10000" username="admin" password="changeme" driverClassName="com.watch4net.x100.jdbc.Driver" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" url="jdbc:x100://localhost:48443/Databases/APG-Datastore/" />
Change the entry in server.xml to match the actual path on the server where the APG datastore is running. In this case it is the Default instance on localhost:<Resource name="jdbc/FLOW-TF-VOIP" auth="Container" type="javax.sql.DataSource" maxActive="10" maxIdle="10" validationQuery="SELECT 1" testOnBorrow="false" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000" maxWait="10000" username="admin" password="changeme" driverClassName="com.watch4net.x100.jdbc.Driver" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" url="jdbc:x100://localhost:48443/Databases/APG-Datastore/Default" />Save the changes to server.xml and restart tomcat. /opt/APG/bin/manage-modules.sh service restart tomcatWhen tomcat starts up again, the above error message will not be seen and the Call Overview reports will be populated.
If the Call Overview reports are still blank after amending this, modify the display settings to look at the last 1 week or 1 month. The report by default looks at 1 hour values for the last 1 day. It is possible that there was no call activity in the last 24 hours and hence there is no CDR data in the database for that time period.
Click on a version to see all relevant bugs
VMware Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.