Cognos Analytics

Cognos Analytics

Connect, learn, and share with thousands of IBM Cognos Analytics users! 

 View Only
  • 1.  Cognos SDK execution monitoring - URGENT

    Posted Wed March 25, 2020 08:54 AM
    Hi Gurus.
    We have an installation of Cognos 10.2.2 and a series of applications developed with the Cognos SDK to execute reports from different intranet portals.

    Is there a way to monitor the reports or requests that come to the server through the SDK?

    From Cognos Administration \ Current Activity (interactive or background) it does not show report executions from SDK applications.


    The Dispatcher is consuming 100% CPU and we cannot detect what the problem is.



    Thank you.

    ------------------------------
    Diego Campos
    ------------------------------

    #CognosAnalyticswithWatson


  • 2.  RE: Cognos SDK execution monitoring - URGENT

    Posted Fri March 27, 2020 08:21 AM
    I don't have a good answer for you, sorry. I assume the Audit package also would not show these SDK initiated reports. But you could look.

    Pretty basic, but can you write to a log from within the SDK code? Write the input parameter, user, server (whatever identifying information you can find)  and start time to the log, then write the same identifying information and end time to the log.

    ------------------------------
    brenda grossnickle
    BI Programmer Analyst
    FIS
    ------------------------------



  • 3.  RE: Cognos SDK execution monitoring - URGENT

    Posted Fri March 27, 2020 11:46 AM
    Hi.
    Thanks for your answer.
    You would actually need real-time monitoring of executions to know that it is running.

    Audit reports do not meet this need.

    Regards.

    ------------------------------
    Diego Campos
    ------------------------------



  • 4.  RE: Cognos SDK execution monitoring - URGENT

    Posted Wed April 28, 2021 09:51 AM
    SDK execution is treated as interactive activity. should be there unless SDK log in from different namespace. I could assume SDK application has its own log to indicate how long it takes to run reports or other activities. Database log can tell which reports are being run too (per report SQL). Dispatcher 100% CPU could be caused by many things. 

    ------------------------------
    Susan Ma
    ------------------------------



  • 5.  RE: Cognos SDK execution monitoring - URGENT

    Posted Wed April 28, 2021 11:11 AM

    In the administration part of your first screenshot, it show PID 12740, which you can also see in the taskmanager.
    As for the 12% cpu allocation on the bibus, i would guess you have an 8 cpu core application server.
    The bibus process is single threaded, and can allocate that cpu core up to it's full capacity until it is done calculating.

    With enough concurrent bibus processes running, it means 100% resource consumption; exactly what your taskmanager screenshot shows.
    If the individual reports cannot be broken down as to why they consume so much cpu, you need to protect the system by not allowing so many concurrent bibus processes to run in the first place.

    In Cognos Administration in the tuning section you have an entry called "maximum number of processes for the report service during peak period"
    That value basically means maximum number of concurrent bibus processes allowed to run on this dispatcher.
    You have another called "maximum number of processes for the batch report service during peak period". Those are for the scheduled reports.

    If you cannot get the reports themselves in grip, you have to lower the value of these until the cpu is no longer choking during peak usage.
    If that is not a feasible solution, you either need to add more cpu cores, or add another dispatcher server to the architecture.



    ------------------------------
    STEFAN VERMEULEN
    ------------------------------



  • 6.  RE: Cognos SDK execution monitoring - URGENT

    Posted Thu April 29, 2021 04:39 AM
    Hi @Diego Campos,

    your question: "Is there a way to monitor the reports or requests that come to the server through the SDK?"

    we patched the bi-service.war to contain a servletFilter.jar in order to control the requests coming in:
    	# Unpack ... patch ... pack
    	echo "Unpacking bi-service.war to temp directory"
    	unzip -q ../bi-service.war
    	echo "Copying SimpleRequestFilter.jar to unpacked directory WEB-INF/lib/"
    	cp -rp ${SERVLETDIR}/SimpleRequestFilter.jar WEB-INF/lib/.
    	echo "Copying web.xml to unpacked directory WEB-INF/"
    	cp -rp ${SERVLETDIR}/web.xml WEB-INF/.
    	echo "Packing up the new bi-service.war"
    	jar -cf ../bi-service.war *
    	cd ..
    

    The web.xml inside bi-service.war needs the entry for the servlet-filter class.

    Change web.xml to
        <!-- ===================================================== -->
    	<!-- AMVARA CONSULTING - SimpleRequestFilter web.xml       -->
        <!-- ===================================================== -->
        <filter>
    		<filter-name>SimpleRequestFilter</filter-name>
    		<filter-class>de.amvara.servlet.filter.SimpleRequestFilter</filter-class>
    		<async-supported>true</async-supported>
        </filter>
        <filter-mapping>
    		<filter-name>SimpleRequestFilter</filter-name>
    		<url-pattern>/*</url-pattern>
        </filter-mapping>
        <!-- ===================================================== -->
    

    This will load the servletFilter.

    Here is a howto create a servletFilter

    We can give you access to our private repo, so you can download our sourcecode to get an idea of monitoring and filtering requests.

    We needed this to particular steer the access of parameters entered on reports, as this is controlled by a rights bean with complex user-role rights on application level and could not be transfered into frameworkmanager access model.

    Hope this helps.


    ------------------------------
    Ralf Roeber
    https://linkedin.com/in/ralf-roeber-470425a/
    ------------------------------