WebSphere Application Server & Liberty

WebSphere Application Server & Liberty

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
  • 1.  WebSphere Application Server file system high disk utilization

    Posted Fri August 23, 2013 12:16 PM
    I am new to WebSphere.    We are using WebSphere Application Server 7.0 and JMS Queues.    The server has large websphere file.  It keeps growing.      The file is found in this path.    .../databases/com.ibm.ws.sib/mlwlms20Node01.wmserver-wmserver_ILS_QUEUE_CONNECTOR.sib.84A49A866203A375/seg0.    This directory has 98 files.  The file names are c*.dat.    The big boy is c450.dat.   The size is 67 GB.    Too big to view the file.   I was able to cat the file.   I found XML records in the file.    

    What is this big boy?   Can it be purge or deleted?     I need to do something before this file system runs out of space.   




  • 2.  WebSphere Application Server file system high disk utilization

    Posted Sat August 24, 2013 05:48 AM

    Hi denny,

      The path is the default repository of SIB Bus(es) message/transactions logs stores.
     
      You have configured one SIB Bus and a ME (Message Engine) on it, JMS Queues are in this ME.  
     
      Check your datastores configuration to know the max limit of the ME store.
     
      Check through adminconsole:
      Service Integration - Buses - BUS_NAME - Message Engines - YOUR_ME - datastores
     
      JMS Queues have persistent information? Maybe your application is "storing" useless information.
     
      DON'T DELETE IT, it have your JMS Queues information.
     
      Hope this helps.
     
    regards


  • 3.  WebSphere Application Server file system high disk utilization

    Posted Tue August 27, 2013 04:02 PM
    python is only tool I have to display jms queues attributes.    I found sample script to list queues and depth.     

    # Print Queue Stats
    print "Print Queue Stats"
    scope = AdminConfig.getid('/Node:%s/Server:%s' % (nodeName, serverName))allqueues = AdminTask.listSIBJMSQueues(scope).split()
    print "sequence number, queue name, current queue depth"
    i = 0
    for queue in allqueues:
        i = i + 1
        identifier = AdminControl.getAttribute(queue,'identifier')
        depth = AdminControl.getAttribute(queue,'depth')
        print i, identifier, depth

    Results..................

    Print Queue Stats
    sequence number, queue name, current queue depth
    WASX7017E: Exception received while running file "/apps/scope/home/wasadmin/scripts/test12.py"; exception informati
    on: com.ibm.ws.scripting.ScriptingException: WASX7025E: Error found in String "WebSphere:jms.queue.INVENTORY_INBOUN
    D(cells/WM_JCKQCell/nodes/mlwlms20Node01/servers/wmserver|resources.xml#J2CAdminObject_1369057142046)"; cannot crea
    te ObjectName.

    Why it script failing with message WASX7017E?    The value queue has valid jms queue name.    It it because variable identfier and depth values are null?  What am I missing?



  • 4.  WebSphere Application Server file system high disk utilization

    Posted Wed August 28, 2013 09:28 AM
    Hi denny,

      I think that you are not getting the correct Objectname....
     
      You can check Depth and Messages in runtime from adminconsole.
     
        Service integration > Buses > YOURBUS > Messaging engines > YOURME > In runtime tab you can check Queues
        
      I have used with Version 6.1 the next utility:

        Service Integration Bus Performance
        www.ibm.com/developerworks/community/gro...
        
      I'm testing with version 7. I tell you if work.
     
      Hope this helps.
     
    Kind regards


  • 5.  WebSphere Application Server file system high disk utilization

    Posted Wed August 28, 2013 10:25 AM
    [quote author=91692909 post=535080853]Hi denny,

      I think that you are not getting the correct Objectname....
     
      You can check Depth and Messages in runtime from adminconsole.
     
        Service integration > Buses > YOURBUS > Messaging engines > YOURME > In runtime tab you can check Queues
        
      I have used with Version 6.1 the next utility:

        Service Integration Bus Performance
        www.ibm.com/developerworks/community/gro...
        
      I'm testing with version 7. I tell you if work.
     
      Hope this helps.
     
    Kind regards[/quote]

    I can confirm that the tool works on WAS 7.0.0.17

    Regards


  • 6.  WebSphere Application Server file system high disk utilization

    Posted Wed October 30, 2013 03:26 PM

    Sorry it took me so long to post response.   We found solution to clear our large WebSphere files.    The process took me number of steps to identify the problem.   

    Our company purchased new Warehousing Application System.     JMS queues are used to send data from our mainframe system to new Warehouse System.     Our JMS Queues are configured on AIX 7 and WebSphere 8.0.0.2.  JMS is using the SIB (System Integration Bus).     I found scripts to query the JMS Queue depth, but I had problems putting the pieces together.     These were the steps.  



    1. Enable PMI message process counters

    2. Created Jython scripts to monitoring JMS queue depth

    3. Installed Hermes to browse messages in the JMS queues.


    Message processor counters.   The service integration bus messages processor counters are part of the performance monitoring infrastructure (PMI), which provides server-side monitoring and client-side API to retrieve performance information.      These counters need to be enabled to collect message queue depth.  


    Signon to the WebSphere Console.    Enable PMI to collection message queue depth


    Performance Monitoring Infrastructure (PMI) > wmserver > Custom monitoring level


    -         SIB Service



    • SIB Messaging Engines

      • *

        • Destinations

          • Queues

            • QueueStats.AvailableMessageCount

            • QueueStats.UnavailableMessageCount   










    My first jython scripts failed.  I was using the wrong port number.   My scripts work using SOAP_CONNECTOR_ADDRESS port number.    Found this jython script to list the ports being used by WebSphere. 


    printports.sh


    /manh/3rdparty/swtools/WebSphere8/AppServer/bin/wsadmin.sh -conntype SOAP -host mlwlms20.woolworth.com  -port 11035 -username system -password password -lang jython -f /apps/scope/wms/utilities/scripts/printports.py


    printports.py


    formatString = '''


            Node: %s


            Server: %s


     


     Port |  EndPoint Name


    ------+---------------'''


    for node in AdminConfig.list( 'Node' ).splitlines() :


            nodeName = AdminConfig.showAttribute( node, 'name' )


            for se in AdminConfig.list( 'ServerEntry', node).splitlines() :


                    serverName = AdminConfig.showAttribute( se, 'serverName' )


                    print formatString % (nodeName, serverName )


                    seps = AdminConfig.showAttribute( se, 'specialEndpoints' )


                    for sep in seps[ 1:-1 ].split( ' ' ) :


                            ep = AdminConfig.showAttribute(sep,'endPoint')


                            port = AdminConfig.showAttribute(ep,'port')


                            name = AdminConfig.showAttribute(sep,'endPointName')


                            print '%5d | %s' % (port, name)


                    print


    Print Port Results


            Node: mlwlms20Node02


            Server: server1


     


     Port |  EndPoint Name


    ------+---------------


    11034 | BOOTSTRAP_ADDRESS


    11035 | SOAP_CONNECTOR_ADDRESS


    11040 | ORB_LISTENER_ADDRESS


    11037 | SAS_SSL_SERVERAUTH_LISTENER_ADDRESS


    11038 | CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS


    11039 | CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS


    11031 | WC_adminhost


    11030 | WC_defaulthost


    11041 | DCS_UNICAST_ADDRESS


    11033 | WC_adminhost_secure


    11032 | WC_defaulthost_secure


    11046 | SIP_DEFAULTHOST


    11047 | SIP_DEFAULTHOST_SECURE


    11042 | SIB_ENDPOINT_ADDRESS


    11043 | SIB_ENDPOINT_SECURE_ADDRESS


    11044 | SIB_MQ_ENDPOINT_ADDRESS


    11045 | SIB_MQ_ENDPOINT_SECURE_ADDRESS


    11036 | IPC_CONNECTOR_ADDRESS


     


            Node: mlwlms20Node02


            Server: wmserver


     


     Port |  EndPoint Name


    ------+---------------


    11004 | BOOTSTRAP_ADDRESS


    11005 | SOAP_CONNECTOR_ADDRESS


    11014 | ORB_LISTENER_ADDRESS


    11010 | SAS_SSL_SERVERAUTH_LISTENER_ADDRESS


    11011 | CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS


    11012 | CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS


    11002 | WC_adminhost


    11000 | WC_defaulthost


    11013 | DCS_UNICAST_ADDRESS


    11003 | WC_adminhost_secure


    11001 | WC_defaulthost_secure


    11015 | SIP_DEFAULTHOST


    11016 | SIP_DEFAULTHOST_SECURE


    11017 | IPC_CONNECTOR_ADDRESS


    11006 | SIB_ENDPOINT_ADDRESS


    11007 | SIB_ENDPOINT_SECURE_ADDRESS


    11008 | SIB_MQ_ENDPOINT_ADDRESS


    11009 | SIB_MQ_ENDPOINT_SECURE_ADDRESS


    These scripts will list the JMS queues


    alljmsqueues.sh


    /manh/3rdparty/swtools/WebSphere8/AppServer/bin/wsadmin.sh -conntype SOAP -host mlwlms20.woolworth.com  -port 11005 -username system -password password -lang jython –tracefile  /apps/scope/wms/utilities/scripts/logs/alljmsqueues_trace.log -appendtrace false  -f /apps/scope/wms/utilities/scripts/alljmsqueues.py  > /apps/scope/wms/utilities/scripts/logs/alljmsqueues.log


    Script alljmsqueues.py


    import time


    import os


    print "Start alljmsqueues.sh script      ",time.ctime()


     


    formatString = '''


       Queue                                           | Queue Depth |       State  |  Threshold


       ------------------------------------------------+-------------+--------------+-----------'''


     


    flag = 'N'


    allqueues = AdminControl.queryNames('WebSphere:*,type=SIBQueuePoint').split('\n')


    print formatString


    for queue in allqueues:


        identifier = AdminControl.getAttribute(queue,'identifier')


        depth = AdminControl.getAttribute(queue,'depth')


        state = AdminControl.getAttribute(queue,'state')


        highMessageThreshold = AdminControl.getAttribute(queue,'highMessageThreshold')


        print '%50s | %12s| %12s | %10s' % (identifier, depth, state, highMessageThreshold)


        if depth '0':


            flag = 'Y'


        continue


     


    if flag == 'Y':


        cmd = 'mailx -s ' + '"QA All JMS Queues Depth"' + 'address@emailserver < /apps/scope/wms/utilities/scripts/logs/alljmsqueues.log'


       


        os.system(cmd)


    Partial results of alljmsqueues.py


    WASX7209I: Connected to process "wmserver" on node mlwlms20Node02 using SOAP connector;  The type of process is: UnManagedProcess


    Start alljmsqueues.sh script       Wed Oct 30 07:00:17 2013


       Queue                                                          | Queue Depth |       State        | Threshold


       ---------------------------------------------------+----------------+----------------+ -------------


        JMS.QUEUE.MA.LM.MASTER.IN         |                     0|       ACTIVE |      50000


        JMS.QUEUE.MA.LM.MASTER.OUT     |                     0|       ACTIVE |      50000


        JMS.QUEUE.MA.LM.RESPONSE.OUT |                     0|       ACTIVE |      50000


        JMS.QUEUE.MA.LM.TRAN.IN               |                    0|       ACTIVE |      50000


        JMS.QUEUE.MA.LM.TRAN.OUT           |                    0|       ACTIVE |      50000


        JMS.QUEUE.MA.WM.MASTER.IN        |                    0|       ACTIVE |      50000


        JMS.QUEUE.MA.WM.MASTER.OUT    |                    1|       ACTIVE |      50000


    After all of this we did not find queue with large number of messages.   There was queue with 30,000+ messages.   We did not have utility to browse the messages in the JMS queue.  We downloaded and installed Hermes JMS Browser 1.15.      After the install Hermes fails to start.   FYI there is typo in the hermes.bat file.     Change no to not.  


                :typeHermesCfg


                If no exist      


                Change to


                If not exist


     


    Hermes 1.15 started.   Successfully configure session.    Configuring Hermes was not easy for me.     I have screen prints available.   Hermes JMS Browser was use to looks at problem JMS queue.   The queue was not the problem.   The Jython scripts and Hermes gave us enough information to contact our vendor.   The vendor gave us instruction to clear the big file.     The solution was simple.     


    1. Login to App server and shutdown the application
    2. Go to the WM JMS DB directory (Ex for QA - $cd /apps/scope/wms/profile-root/WM_JCKQ/databases/com.ibm.ws.sib )
    3. Move all the contents of the above directory to a backup location (empty the com.ibm.ws.sib directory). This backup can be deleted later once changes are tested and verified.
    4. Now start up the application and test.    The restart of the system will rebuild the WebSphere Files.   


    The vendor Manhattan Assoicates said the large file (69GB) found  in ../com.ibm.ws.sib directory were jms xml records that failed to update.   The problem XML records have been fixed.     We no longer have the large file.
    Once per week this file is clear.  I am still WebSphere newbie.   Not sure if this solution will work for everybody.    


     


     


     


     



  • 7.  WebSphere Application Server file system high disk utilization

    Posted Wed October 30, 2013 05:57 PM
    Congratulations denny!!! great and hard work

    glad to hear that the problem is solved.

    Regards