com.ibm.tivoli.maximo.report.birt.queue

Class ReportQueueManager

  • All Implemented Interfaces:
    java.lang.Runnable


    public class ReportQueueManager
    extends MaximoThread
    A class that figures out how to run a report from the queue in a nice way, without putting additional load on the system. There is only once instance of this per MAXIMO application (EAR) within a JVM.
    • Field Detail

      • DEFAULT_QUEUE_IDLETIME_SECONDS

        public static final int DEFAULT_QUEUE_IDLETIME_SECONDS
        See Also:
        Constant Field Values
      • PROPERTY_QUEUEIDLETIMESECONDS

        public static final java.lang.String PROPERTY_QUEUEIDLETIMESECONDS
        See Also:
        Constant Field Values
      • PROPERTY_DISABLEQUEUEMANAGER

        public static final java.lang.String PROPERTY_DISABLEQUEUEMANAGER
        See Also:
        Constant Field Values
      • DEFAULT_MAX_CONCURRENT_THREADCOUNT

        public static final int DEFAULT_MAX_CONCURRENT_THREADCOUNT
        See Also:
        Constant Field Values
      • PROPERTY_MAXCONCURRENTRUN

        public static final java.lang.String PROPERTY_MAXCONCURRENTRUN
        See Also:
        Constant Field Values
    • Constructor Detail

      • ReportQueueManager

        public ReportQueueManager()
    • Method Detail

      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread
      • isQueueManagerDisabled

        protected boolean isQueueManagerDisabled()
      • areJobsAvailableToRun

        protected boolean areJobsAvailableToRun()
        Checks report queue for any pending jobs to process.
        Returns:
      • isReady

        protected boolean isReady()
      • runJobs

        protected void runJobs()
        Identifies the threads that are not doing any work and wakes them up for a possible work. This also adjusts the active threads based on the maximum allowed.
      • getCurrentTime

        protected long getCurrentTime()
      • createReportUsageLog

        protected void createReportUsageLog(ReportUsageLogInfo usageLogInfo)
      • acquireLock

        public boolean acquireLock(long runQueueId)
        Aquires lock on a report that can be run, so that the report is run by only one thread.
        Parameters:
        runQueueId -
        Returns:
      • removeRunReport

        public void removeRunReport(long runQueueId)
      • runQueuedReport

        protected void runQueuedReport(java.lang.String userId,
                                       java.lang.String reportName,
                                       java.lang.String appName,
                                       ReportParameterData parameterData,
                                       java.lang.String emailAddress,
                                       java.lang.String emailAddresses,
                                       java.lang.String emailSubject,
                                       java.lang.String emailComments,
                                       java.lang.String emailFileType,
                                       java.lang.String emailType,
                                       java.lang.String maximoUrl,
                                       java.util.Locale locale,
                                       java.util.TimeZone timeZone,
                                       java.lang.String langCode,
                                       ScheduledReportUsageLogNotifier sReportUsageLogNotifier,
                                       java.lang.String fileDispformat)
      • reportCancelledDueToRecordLimits

        protected void reportCancelledDueToRecordLimits(ReportSecurityLimits limits,
                                                        java.lang.String reportName,
                                                        java.lang.String appName,
                                                        java.lang.String userId,
                                                        java.lang.String emailAddress,
                                                        java.lang.String emailAddresses,
                                                        ReportAdminServiceRemote reportService)
                                                 throws java.rmi.RemoteException,
                                                        MXException
        Throws:
        java.rmi.RemoteException
        MXException
      • reportCancelledByAdministrator

        protected void reportCancelledByAdministrator(java.lang.String reportName,
                                                      java.lang.String appName,
                                                      java.lang.String userId,
                                                      java.lang.String emailAddress,
                                                      java.lang.String emailAddresses,
                                                      ReportAdminServiceRemote reportService)
                                               throws java.rmi.RemoteException,
                                                      MXException
        Throws:
        java.rmi.RemoteException
        MXException
      • getReportOutputFileName

        protected java.lang.String getReportOutputFileName(java.lang.String tempFolder,
                                                           java.lang.String reportName,
                                                           java.lang.String appName,
                                                           java.util.Locale locale)
                                                    throws MXException,
                                                           java.rmi.RemoteException
        Throws:
        MXException
        java.rmi.RemoteException
      • getEmailAddress

        protected java.lang.String getEmailAddress(java.lang.String userId)
                                            throws MXException,
                                                   java.rmi.RemoteException
        Throws:
        MXException
        java.rmi.RemoteException
      • getMaxAllowedActiveReportThreads

        public int getMaxAllowedActiveReportThreads()
      • getQueueIdleTime

        public int getQueueIdleTime()
      • createFileFromStream

        public void createFileFromStream(java.io.File file,
                                         java.io.InputStream inputStream)
                                  throws java.io.IOException
        Throws:
        java.io.IOException