Friday, October 24, 2014

Removing temporary data : -When installing Maximo Base Services 7.5 or Base Services Fixpack 7.1 you get an error: CTGIN2489E.

Removing temporary data

If you have modified the Maximo database since you installed another product or component, make sure all of your changes are completed before you begin a new upgrade or installation procedure.
All changes must be committed to the database before you can upgrade an existing product or install a new product or component. Tables whose names begin with "XX" are temporary tables that must be dropped before installing. If these tables exist, you will see error CTGIN2489E when you run an upgrade or installation procedure.
Temporary data can exist in your database in these situations:
  • You are upgrading an existing product after configuring and using it.
  • You are installing a new product or component in an environment where you have already installed another product, and configured and used that product.
  • You are using the installer to add a feature or function that you did not implement when you first installed your product.
If you are in one of these situations, check whether you have any uncommitted changes or temporary tables in your database.
  1. To confirm that all changes have been committed, run the following SQL query against the Maximo database:
    SELECT count(*) from maxobjectcfg where changed != 'N'
    'N' indicates that a change has been committed. For this query, if entries are returned with a value of 0 instead of N, you must commit those changes. Follow these steps to commit the changes:
    1. Click Go To > System Configuration > Platform Configuration > Database Configuration.
    2. From the Select Action menu, click Manage Admin Mode.
    3. Click Turn Admin Mode ON.
    4. Click OK, then wait for a few minutes for the change to take effect.
    5. From the Select Action menu, click Apply Configuration Changes. Monitor the process to completion.
    6. From the Select Action menu, click Manage Admin Mode.
    7. Click Turn Admin Mode OFF.
    8. Stop the MXServer.
    9. On the administrative Workstation, open a command prompt. Change to the directory c:\ibm\smp\maximo\tools\maximo.
    10. Run the following commands:
      configdb.bat
      dropbackup.bat
      dropbackup.bat
      The dropbackup.bat command is run twice. This should complete the commitment of all database changes.
  2. Determine whether any temporary tables exist in your database, using the command appropriate to your database:
    DB2®
    select count(*) from sysibm.systables where name like 'XX%' and 
    creator = 'MAXIMO'
    Microsoft SQL Server
    SELECT count(*) FROM sysobjects WHERE xtype = 'U' AND name like 'XX%'
    Oracle
    SELECT count(*) from all_tables where table_name like 'XX%'
    If the returned value is not 0, follow these steps to drop the temporary tables:
    1. On the administrative Workstation, open a command prompt. Change to the directory c:\ibm\smp\maximo\tools\maximo.
    2. Run the following commands:
      configdb.bat
      restorefrombackup.bat
      dropbackup.bat
      dropbackup.bat 
      The dropbackup.bat command is run twice. This should drop all the temporary tables in the database.
Now you can proceed with your upgrade or installation procedure.

Wednesday, October 1, 2014

Integrity Checker reports BMXAA0494E errors on table COMMLOG.

Problem

After upgrading a Maximo 6.2 database to 7.1, several columns on table COMMLOG do not match the way that the columns are defined in Maximo.

Issue

In Integrity Checker report:
BMXAA0443E -- ERROR -- BMXAA0494E -- The Maximo definition of this column does not match the actual column:
BMXAA6841I - COMMLOG.BCC, Maximo definition is CLOB, Database column is VARCHAR2(4000)
BMXAA0443E -- ERROR -- BMXAA0494E -- The Maximo definition of this column does not match the actual column:
BMXAA6841I - COMMLOG.CC, Maximo definition is CLOB, Database column is VARCHAR2(4000)
BMXAA0443E -- ERROR -- BMXAA0494E -- The Maximo definition of this column does not match the actual column:
BMXAA6841I - COMMLOG.SENDTO, Maximo definition is CLOB, Database column is VARCHAR2(4000)

Resolving the problem

1. For each column, add to table COMMLOG a new column with data type CLOB. For example:
Alter Table commlog Add bccnew CLOB;
2. Copy the original column to the new column. For example:
Update commlog Set bccnew = bcc ;
3. Drop the original column. For example:
Alter Table commlog Drop Column bcc ;
4. Rename the new column to the original name. For example:
Alter Table commlog Rename Column bccnew To bcc ;
5. Run Integrity Checker again to verify that the errors are no longer reported.

Upgrade to Maximo 7.5 fails in UpdateDB script V7500_343.

Problem(Abstract)

When upgrading the Maximo database to 7.5.0.x, UpdateDB can fail in script V7500_343.dbc:


BMXAA7025E -- Script failed while running.;

A statement failed to execute inside a freeform statement;

sql#1407;
ORA-01407: cannot update ("INVENTORY"."COSTTYPE") to NULL

-- BEGINUPDATEDBERROR

-- Product: Tivoli's process automation engine
-- Error running file: V7500_343
-- UPDATEDBFILE:V7500_343.dbc

Symptom

The V7500_343 freeform statement that fails is:

update inventory set inventory.costtype = case
when ( select maxvars.varvalue from maxvars where maxvars.varname = 'COSTFROMASSET' and maxvars.siteid = inventory.siteid ) = '1'
and ( select item.rotating from item where item.itemnum = inventory.itemnum and item.itemsetid = inventory.itemsetid ) = 1
then ( select value from synonymdomain where synonymdomain.domainid = 'COSTTYPE' and synonymdomain.maxvalue = 'ASSET' and synonymdomain.defaults = 1 )
when ( select maxvars.varvalue from maxvars where maxvars.varname = 'DEFISSUECOST' and maxvars.siteid = inventory.siteid ) = 'AVGCOST'
then ( select value from synonymdomain where synonymdomain.domainid = 'COSTTYPE' and synonymdomain.maxvalue = 'AVERAGE' and synonymdomain.defaults = 1 )
when ( select maxvars.varvalue from maxvars where maxvars.varname = 'DEFISSUECOST' and maxvars.siteid = inventory.siteid ) = 'STDCOST'
then ( select value from synonymdomain where synonymdomain.domainid = 'COSTTYPE' and synonymdomain.maxvalue = 'STANDARD' and synonymdomain.defaults = 1 )
else ( select maxvars.varvalue from maxvars where maxvars.varname = 'DEFISSUECOST' and maxvars.siteid = inventory.siteid ) end



If the Maximo database was originally built using MAXDEMO data, rows can exist in the Inventory table that do not have a valid SiteID. As UpdateDB populates new column Inventory.CostType, the invalid SiteID values prevent the script from determining values to populate CostType for these old MAXDEMO records.


Upgrade 7.1 to 7.5.

Diagnosing the problem

If this query returns any values, then your database contains Inventory records with invalid SiteIDs:

Select siteid From inventory Where siteid Not In (Select siteid From maxvars Where varname In
('COSTFROMASSET', 'DEFISSUECOST') ) ;

Resolving the problem


Since these Inventory records are old MAXDEMO data, they serve no purpose and should be removed from your database. Replace XX in the following statement with any invalid SiteID values returned from the query above:

Delete From inventory Where siteid='XX'

Restore your database to pre-upgrade 7.1, remove the bad rows from the Inventory table, and run UpdateDB over again.

Using the middleware installation program to install DB2 9.7 on a Red Hat v6 system results in an error related to missing prerequisites

Problem(Abstract)

Using the middleware installation program to install DB2 9.7 on a Red Hat v6 system results in the following error:

CTGIN9080E: libaio.so.1, libstdc++.so.5 and libstdc++.so.6 packages are
required for DB2.

This error can occur even if the prerequisite checking tool was used to verify prerequisites on the system.

Resolving the problem

The problem is solved by installing libstdc++-4.4.4-13.el6.i686.rpm
which installs /usr/lib/libstdc++.so.6 and /usr/lib/libstdc++.so.6.0.13.

Error CTGIN9053E reported when using the middleware installation program

Problem(Abstract)

When using the middleware installation program, an error similar to the following is displayed:

CTGIN9053E: The partition /data has 100618240 bytes free space, but the
deployment plan requires 1073741824 bytes free space on that partition.
Increase available space in /data.

In this scenario, the middleware installation program was launched from the /data directory, but was not selected as the destination directory for the installation.

Resolving the problem


This error occurs when the middleware installation program is started from a directory that does not include the free space required to install the middleware selected. This error will be reported even if you select a different file system to install the middleware into that does have sufficient space.
The solution to this error is to start the middleware installation program from the same partition as the default home location for users. For example, /home.

The middleware installation program crashes during the WebSphere installation step for the authentication service on Red Hat v6 platforms.

Problem(Abstract)

The middleware installation program crashes during the WebSphere installation step for the authentication service.

Symptom

The middleware installation program crashes. The following error is reported in the console window where the middleware installation program was started:
./mwi_zlinux.bin: line 1965: 13290 Killed -Djava.io.tmpdir=?/tm? -Dtemp.dir=?/tmp? -Dis.jvm.home=?/tmp/istemp/_bundlesJRE_? -Dis.jvm.tmp=?1? -Dis.media.home=?? -Dis.launcher.file=?/mwi_zlinux.bin -Dis.jvm.file=?/tmp/istmp/_bundledJRE_/jvm? -Dis.externel.home=?? run 1>&1 2>&1


Resolving the problem


1. Start the middleware installer and choose the partial undeploy option to undeploy the J2EE server.
2. Once the J2EE server (WebSphere) undeployment is successful, start the middleware installer again and proceed with the Restart the plan option.

If the middleware installer crashes again during installation of the authentication service, restart the middleware installer and proceed with the Restart the plan option, which will result in a successful deployment.

Tuesday, August 12, 2014

Making specific attributes from Classifications required

In Maximo 7.x, you have an option that allows you to mark specific classification attributes as required, however, there are some steps that can help you on achieving this functionality, and make some of your classification attributes as "Required". For this, you will need to use the Conditional Expression Manager application.
First off, make sure you are logged into Maximo as user Maxadmin.

You need to create your own Classification record, in Classifications application, as below (i.e. BOBCLASS01, in this example to be used with ASSET object).
Then, create some attributes for this Classification record, such as AT1, AT2 and AT3 below. (in this example we will make the AT2 required)




Then, a record was created on the CLASSSTRUCTURE table for the Classification you added. (Note that the CLASSSTRUCTUREID value for it is 1322)
You can check it by using a SQL Editor against you Maximo database, as below.





Go to Conditional Expression Manager application and insert a new Condition record like this one below (where you would like to have the AT2 attribute required, for the BOBCLASS01 classification):




Go to Security Groups application, search for the security group that your user belongs to, and add a Data Restriction for it, setting the condition for the ASSETSPEC.ALNVALUE (just because all of the classification attributes were set to ALN data type) to become REQUIRED where the attribute name is AT2 (The classification BOBCLASS01 has AT1, AT2 and AT3 as valid attributes)



Save record in Security Groups application, then log out and log into Maximo as an user which belongs to the Security Group you just updated. (BOBGROUP1, in my example)




Go to Assets application, add a new asset, select the BOBCLASS01 classification.

After filling alphanumeric values for AT1 and AT3 fields , except AT2 , this is the message that you will get :






Then once you fill an alphanumeric value for AT2 , the record can be saved fine.


Thursday, July 31, 2014

Configuring Maximo in Internet Explorer to use the file prompt for attaching files that are not being uploaded

There have been security changes in more recent browsers that prevent us from using the file select prompter when the user wants to attach a file but NOT upload it.  Because of this, now when the user chooses not to upload the file to the server, the file prompter is replaced by a text box.  In this text box the user must enter the full file path and file name manually.  This is not controlled by Maximo Asset Management; it is based on browser security tightening. 
In Firefox there is no way to change that behavior.  However, in Internet Explorer we can allow the user to retain the usage of the file prompter. There is a new system property added mxe.doclink.usefileprompt to enable a browse button to select file attachments that are not copied to the default location.
To retain use of the file prompter, complete the following steps:
  1. Locate the mxe.doclink.usefileprompt property.
  2. Set the property to 1 to display the browse button on Internet Explorer. (The browse button will not work on Firefox.)
  3. Additionally, complete the following steps to change an Internet Explorer security setting on the client machine:
    1. Navigate to Tools > Internet Options.
    2. On the Security tab select the zone you want.
    3. Click Custom Level.
    4. Under Miscellaneous, select Enable for the following property:
Include local directory path when uploading files to a server.

Configuring the type-ahead feature

Overview

Are you a Maximo Asset Management customer at fixpack 7.5.0.2 or above? Would your Asset Management users like to complete their day-to-day activities more quickly AND type less?  Then you should consider configuring the type-ahead feature on your Maximo Asset Management server.
 

Sample Type-ahead

The type-ahead feature is enabled as part of the Client-Side validation feature delivered in Maximo Asset Management 7.5.0.2.  By default this feature is disabled on upgrade as it changes the user experience for your users. It also requires asynchronous data validation to be enabled on your server, which also changes the user experience.  You should read the blog entry Enabling the asynchronous data validation functionality in IBM Maximo Enterprise to understand asynchronous validation. 
 

Enabling Type-ahead

Client-side validation can be enabled for all domain-backed fields by changing one system property.  Change the mxe.webclient.ClientDataValidation to 1.
After you enable the property shown above and restart your server, if your users start typing values in any field backed by a SYNONYM, ALN, or NUMERIC domain, they will receive suggestions that match the value or description of those domain choices based on their input.  Here’s a screenshot of the Reported Priority field from the Create SR application after I’ve typed ‘1’.
Your end users can use the up and down arrow keys to select the appropriate matching option from the suggested options.  If your end users clear the typed value, they can see all the options and use the up and down arrow keys to select the desired value.
Finally if I type a string, it will also match on the description of the NUMERIC domain choices attached to this Reported Priority field.
Notice if I type ‘i’ for instance, both High and Medium will match:
This is a nice way to give your users an easier way to find the correct Numeric value.
 

Adding Type-ahead to fields

You also have the option of adding type-ahead to other fields in your user interface.  A common use case is adding type-ahead to Reported By field of the Create Service Request application.
To add type-ahead to this field, first define a table domain for this field to limit your choices.  Type-ahead will send all potential choices that match the field to the end-user's browser and currently has a hard-coded limit of 10,000 records.  Because you might have more than 10,000 people in the system, limit the available choices by defining a new table domain in the Domains application. Set the List Where Clause of the domain to a sql filter that limits the person records returned.
Now go to the Database Configuration application and associate this table domain with the Reported By field of the SR object and apply your changes (Turn on Admin Mode, apply your database changes, and turn off Admin Mode).
Now go to the Application Designer application, open the Create Service Request application, and launch the properties pane for this field.
Under the Advanced tab, click Configure Type-Ahead.
First add the PERSONID field as a Key.  Then add any additional attributes you want to display (and search) in the type-ahead contents beneath.  You’ll notice if you select the Reported By field, it also automatically adds the phone and email underneath; if you want this to be automatically set by the type-ahead, you’ll need to use the Configure Set Values option.  (If you don’t do this, eventually the asynchronous logic will set it, but the user experience is a little weird.)
i
Now save your updated application in Application Designer.
When you type any string in the Reported By field, it will match on these fields and you can use the up and down arrows to select the correct match.

UI framework event handling

Application Event Model

Overview

Events are sent to the user interface framework whenever an end user clicks a toolbar button in the application toolbar, selects an action listed in the Select Action menu, clicks a push button within the user interface, or selects an option from a menu next to a field.  Many other types of user interactions also send events to the user interface framework, but those widgets previously listed are the ones that application developers are mostly likely to configure.
This article explains what events are sent to the user Interface framework when your end users interact with those types of widgets. We will also explain how the user interface event handling framework handles those events.  This article should allow you adjust your user interface to use a wide variety of widgets to fire and handle events to best meet your end users usability needs.

Toolbar Button Events

       Example "Save" Toolbar Button
       Find the Signature Option that corresponds to the Save button


Select Action Menu Events

       Example Menu Action “Duplicate Action”
Choosing a Select Action menu item causes the user Interface framework to receive an event that matches the Signature Option id associated with this Select Action menu item.   In the example above, the user Interface framework would receive an event called “DUPLICATE” based on the details of the configured Signature Option as shown below.
       Translating a Select Action to the Underlying Event


Configuring Push Button Events

Example Select Members Push Button
You can associate a push button with an event using the “Event” field in Application Designer or using the “mxevent” attribute in the presentation xml. You can optionally specify the ID of a control that processes the event using the “Target ID” field in Application Designer or “targetid” in the presentation xml.
When an end user clicks the button, the event ID specified in that panel above “selectmembers” is received by the user interface event handling framework.


Popup Menu Events

Each field-level popup menu has underlying mxevents associated with each of the menu choices.
       Example Popup Menu
       Configuration of Popup Menu for this Field
       Actual Popup Menu for this Field (from Menus.xml)
Notice the events listed for each of the choices shown.  That event string is the event that gets sent to the underlying user Interface framework when this menu choice is clicked.


User Interface Framework Event Handling

The user interface framework processes the event received in this order:
  1. First the framework checks to see if the event matches a signature option (sigoption) ID.
    1. If the event does match, the user interface framework checks to see if the user has privileges for that signature option.
    2. If they do have security privileges, the framework checks to see if there is a special flag set to handle the Signature option in an Advanced way.  If the Signature option does have a flag the user interface handles that flag accordingly.  So if the Signature Option is flagged as an Action then the User Interface invokes that action. Here is an example of a menu option that would start a System Configuration->Platform Configuration->Action called “INSERT” for the Action object instead of firing the default INSERT event. 
                      Setting Advanced Options to point a Signature option to an Action
                       The Underlying Action that would get called by the Advanced Sigoption Metadata Above
  1. If there is not an “Advanced” Flag for this sigoption then the framework checks the target control/component to see if it handles such an event (by implementing a method that matches the event name.)  Events sent from Select Action and Toolbar buttons will rarely match this check as the target control/component for the Select Action and Toolbar buttons is the Application Toolbar, and it rarely handles the event directly.
  2. If the control or component doesn’t have a method that matches then the framework will check to see if the DataBean or ApplicationBean associated with the target component/control has such a method; if it does then that method will be called.  The Select Action or Toolbar buttons are bound to the ApplicationBean, so will check there for a method that matches.  Buttons and Button groups can be bound to other Databeans based on where they are placed within the application.
  3. If a targetid is not configured in the Application Designer for the events, the framework will check the Application Bean for the application to find a matching method.
                    Example Application Bean method to handle the INSERT signature option event
  1. If the Application Bean doesn’t contain a matching method, the Mbo and MboSet of the DataBean will be checked for a matching method as well. 
  2. If no such method exists or the method returns the integer constant for EVENT_CONTINUE, the framework will then check to see if there is a dialog in the current application with a dialog id that matches the event name.  If such a dialog exists then that dialog will be displayed.
  3. Finally the framework will check to see if there is a dialog in the System Libraries that has a dialog ID that matches the event, and it will display the dialog in that case.
If all of these checks fail, NOTHING will happen when the event is received by the user Interface framework.

Example

So putting all this information together, let’s go through the use case where an Application Developer may want to add a button to the user interface that would expose a functionality that is also exposed in the Select Action menu.  For example, in the Inventory application, let’s add a button on the main Inventory tab that would trigger the 'Adjust Current Balance' that is typically available only from the Select Action menu.
First we’ll look at the Sigoptions defined in the Inventory application in Application Designer to find the right event:
       Event is CURBALADJ
Drag and drop a button group and push button onto the main Inventory tab and set the event to CURBALADJ to match the signature option above.
       Configuring the Pushbutton Event and Label
Save the Application.
Now from within the Available Balance section, your end users can click the Adjust Current Balance button and pop up that dialog.
       Current Balance Adjustment window
With all the information you learned above, you could even put a field-level menu next to the current balance that let you fire this event (rather than a push button.)
Hopefully this explanation of the event model will help you enhance your user interfaces to meet your end user requirements.

More Detailed Information

Technically when the end user interacts with each of those widgets above, a click event is sent to the component, and the component translates that click event into a queued event that matches the description given above.  Sometimes to help debug issues in the field, the user interface team might turn on javascript event tracking and you might see these click events being sent from the client.

Asset New Videos Links

https://www.ibm.com/developerworks/community/blogs/c044e665-9dbc-47af-9841-e4a5de82c0eb/entry/maximo_asset_management_videos?lang=en

http://publib.boulder.ibm.com/infocenter/ieduasst/tivv1r0/index.jsp?topic=/com.ibm.iea.mam/plugin_coverpage.html

https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/new_videos_for_maximo_asset_management?lang=en

Thursday, July 24, 2014

Maximo - Reconciliation Setup Steps

Below I have shown the fields that need to be populated in the order they need to be done. Looking at the information below I assume you are already logged into Maximo. Set up a task filter. (A task filter is optional).
GoTo> Administration > Reconciliation > Task Filters
Fill in field 'Task Filter Name' = example: BEDFORD

Define link rule(s).
GoTo> Administration > Reconciliation > Link Rules
Define a rule like {Asset (Serialnum) = Deployed Asset (serialnumber)}
Choose a Link Rule Name = {SERIAL NUMBER}

Define comparison rule(s). Comparison rules are optional.
GoTo> Administration > Reconciliation > Comparison Rules
Give the Rule a name. example: DiskAvailable (Check for >2gb available HD)
In the Type of Reconciliation section choose your Data sets 1 & 2 (Assets & Deployed Assets)
Only looking at Data Set 2 Filter (Deployed Assets) add New Row
Pick Data Set 2 Object field value example: DPALOGICALDRIVE
Pick Data Set 2 Attribute field value example: AVAILABLESIZE
Pick Operator field value example: >=
Pick Value field value example: 2.0 (2 gb)

Set up a reconciliation task.
GoTo> Administration > Reconciliation > Reconciliation Task
Give the task a name. example: SN-Bedford
In the Type of Reconciliation section choose your Data sets 1 & 2 (Assets & Deployed Assets)
In the Link Rule section choose a rule you created above using the [Select Link Rule] button or create a new rule with the [New Row] button
In the Comparison Rules section choose a rule you created above using the [Select Comparison Rule] button or create a new rule with the [New Row] button

Your Done setting up Reconciliation.

Now look for 'Maximo Reconciliation Cron Task Setup Steps' to create a Cron Task to fire off the Reconciliation Task.

Monday, July 21, 2014

UPDATEDB ERROR WHEN RUNNNG MAXIMO 7.5 WITH SQL SERVER

Abstract

While upgrading Maximo from 7.1 to 7.5 by running updatedb on SQL Server, you could encounter an error on script V7500_224 .

Content


While upgrading Maximo from 7.1 to 7.5 ( eg: MBS 7.1.1.10 to MBS 7.5.0.3 ) by running updatedb on SQL Server, you could encounter an error on script V7500_224 .
The updatedb process ends without errors, however the following errors are shown on the updatedb console.

-----------------------------------------------------------------------------------------------------------------------------------------------------------
com.microsoft.sqlserver.jdbc.SQLServerException: The multi-part identifier "wocalcvaluesseq.nextval" could not be bound.
at com.microsoft.sqlserver.jdbc.SQLServerException. makeFromDatabaseError(SQLServerException.java:196)
at
com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextRes (SQLServerStatement.java:1454)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:786)
at
com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmdoExecute(SQLServerStatement.java:685)
at
|
|

com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:185)
at
com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at
com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:658)
at psdi.script.en.V7500_224.updateWOValues(UnknownSource)
at psdi.script.en.V7500_224.findTotals(Unknown Source)
at psdi.script.en.V7500_224.process(Unknown Source)
at psdi.script.AutoUpgradeTemplate.(Unknown
Source)
at psdi.script.en.V7500_224.(Unknown Source)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
------------------------------------------------------------------------------------------------------------------------------------------------------------



This has been identified as a product defect and is being fixed in APAR IV36359

ADMA5014E: The installation of application MAXIMO failed

Problem(Abstract)

Deployment fails for maximo.ear file in WebSphere.

Symptom

After uninstalling and reinstalling the Maximo application, the WebSphere Integrated Solutions Console displays the following:

Installing...
If there are enterprise beans in the application, the EJB deployment
process can take several minutes. Do not save the configuration until
the process completes.
Check the SystemOut.log on the deployment manager or server where the
application is deployed for specific information about the EJB
deployment process as it occurs.
ADMA5016I: Installation of MAXIMO started.
A composition unit with name MAXIMO already exists. Select a different application name.
ADMA5011I: The cleanup of the temp directory for application MAXIMO is complete.
ADMA5014E: The installation of application MAXIMO failed.
The installation of application MAXIMO failed.


Cause

Occasionally after uninstalling the MAXIMO application, the directory at /config/cells//applications director will still contain the MAXIMO.ear directory.

By default , this directory is located at C:\Program
Files\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\config\cells\ctgCell01\applications\MAXIMO.ear.

For another possible cause of this error, see the link below .


Resolving the problem


Delete the /config/cells//applications/MAXIMO.ear directory.
Redeploy the MAXIMO ear file.

SCCD 7.5 install failing with error CTGIN0005E

imageProblem(Abstract)

Installing Smart Cloud Control Desk 7.5 fails with the error CTGIN0005E The deployment of D:\IBM\SMP\pmp\DIS_CMS_Tpae_Config_7.5.0.0.zip failed. The error text is CTGIN0143E: An

action error ocurred during the processing of a deployment operation. Action identifier: "Patch_webXML".

Symptom

The deployment of D:\IBM\SMP\pmp\DIS_CMS_Tpae_Config_7.5.0.0.zip failed. The error text is CTGIN0143E: An
action error ocurred during the processing of a deployment operation. Action identifier: "Patch_webXML".
This will be shown in the solutioninstaller logs as:
IBM\SMP\ant\bin\ant' is not recognized as an internal or external command,
operable program or batch file.


Cause

This is caused by the installer not being able to call the ant.bat file due to the PATHEXT system variable not being set correctly.

Diagnosing the problem

In command prompt run the command:
set PATHEXT
This will display what your path extension system variable is currently set to. If it is missing .bat and .cmd you will need to add them.

Resolving the problem


In Windows navigate to your Environment variables.
In Windows Server 2008, Right-click Computer and go to properties. Then Advanced System Settings. Then Environment variables.
Pre-Windows Server 2008, Right-click
In this menu you can see your system variables. Under system variables find PATHEXT. Edit this and add .BAT;.CMD with each new entry being separated by a semi-colon. Ensure that .BAT is before .CMD in the list from left to right.


After adding this to your Path Extention variable, you can re-run taskrunner CONTINUE STOPONERROR.

Forgot password and cannot access WebSphere Application Server administrative console

Problem(Abstract)

Forgot the password and cannot access WebSphere Application Server administrative console.

Cause

After enabling WebSphere Application Server with security, the administrator forgot the user id and password and could no longer access the server.

Resolving the problem


WARNING: Please use this as the last resort and make sure the server is not in the middle of processing any transactions.
There are 2 possible methods for disabling security:

By way of wsadmin command:
  1. /bin/> wsadmin -conntype NONE
  2. wsadmin> securityoff
  3. wsadmin> exit
  4. Restart the servers.
  5. Enable the security from administrative console.
  6. Restart the servers.
By way of manual edit of security.xml file, which is typically located in /config/cells /:
  1. Create a copy for security.xml file, in case you need to roll back.
  2. Disable the security from the security.xml file (change the very first occurrence of... enabled="true" to enabled="false")
  3. Restart the servers.
  4. Enable the security from administrative console.
  5. Restart the servers.
For additional information regarding enabling administrative security, please refer to this link:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/tsec_csec2.html

Friday, July 18, 2014

Backing up and restoring the Deployment Engine database

Question

How do I backup and restore the deployment engine found on my product's middleware servers and administrative system?

Answer

These instructions are for manually backing up and restoring the Deployment Engine
database to the state it was before installing middleware on middleware servers or
process managers on the administrative workstation.

In past releases, the deployment engine was automatically backed up during installation. This is no longer the case. In the latest releases of ISM products, deployment engine backups and restoration are the responsibility of the user.

You should back up the Deployment Engine database of the system before and
after applying any updates to an existing deployment. Having backups allows you
to recover from partial installation attempts where middleware or process manager
components were partially installed.

This procedure is not dependant on the state of the application server. The application server can either in a started or stopped state.

To backup the Deployment Engine database, complete the following steps:

1. Set up the environment using the following command:

Windows c:\Program Files\IBM\Common\acsi\setenv.cmd
UNIX cd /var/ibm/common/acsi ./setenv.sh
2. Run the command to backup the Deployment Engine registry:

Windows c:\Program Files\IBM\Common\acsi\bin\backupdb.cmd

UNIX cd /usr/ibm/common/acsi/bin ./backupdb.sh

Use a meaningful name for to reflect the fact that it contains the state of the registry after your installation of the product. For example, DEBackupAfterJune12Install.
If you have a backup of the Deployment Engine database, you can use the
following command to restore it:

Windows
c:\Program Files\IBM\Common\acsi\bin\restoredb

UNIX
cd /usr/ibm/common/acsi/bin
./restoredb.sh

where is the file containing the Deployment Engine backup
you made.

SmartCloud Control Desk version 7.5 Upgrade Guide.

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=e25892f0-20f7-46ff-bbe9-c7c03fb3036f#fullpageWidgetId=Wb33da0c91d92_4cec_a8a7_57df877f617b&file=9ff971b9-237a-4713-a944-c1e322efff78

Upgrade Service Request Manager 7.1 to 7.2.1

http://pic.dhe.ibm.com/infocenter/tivihelp/v32r1/index.jsp?topic=%2Fcom.ibm.srm.doc_721%2Fupgrade%2Fc_upgrade_71to7201.html

Wednesday, July 16, 2014

Why Service Level Agreements (SLAs) are not being applied

when you configure SLAs with commitments and try to apply them, only to get the message: "BMXAQ0090E - No service level agreement was found." This message might be displayed for one of the following reasons:
 
 
  1. The SLA status is DRAFT or not ACTIVE.
  2. The dates that have been entered are not valid, for example, they may be in the past.
  3. The SLA has different conditions to the work order or ticket.
  4. The SLA has a different location to the work order, ticket, or asset and configuration items.
  5. The SLA organization and site does not match with the work order or ticket organization and site.
  6. The SLA has different shifts than the work order or ticket.
  7. The date specified in the SLA is a non-working day.

Configuring Service Level Agreements (SLAs)

The setup of your calendars and shifts plays an important part in calculating the target dates for SLA.
Now that you know how to apply it  let's see if the dates are being calculated correctly.
Let's create a calendar first.
  1. In the Calendar application, create a calendar.
  2. In the Calendar field, enter 2013.
  3. From the Select Action menu, select Define/Apply Shifts.
  4. In the Define/Apply Shifts window, click New Row.
  5. Enter the name WORK for the shift name.
  6. Specify that the shift lasts from Monday to Friday, 08:00 to 17:00. There are 8 hours in the work shift and a one hour lunch break.
 
 
Now, create the SLA:
 
  1. From the Service Level Agreement application, click New SLA.
  2. In the SLA field, specify SLA_SR.
  3. In the Applies To field, specify Service Requests.
  4. Create commitments for the service level agreement
    1. In the Commitments table window, click New Row.
    2. In the Type field enter  RESPONSE
    3. In the Value field, enter 4. This is the target start time.
    4. In the Unit of Measure field, enter HOURS.
  5. Create another commitment.
    1. In the Commitments table window, click New Row.
    2. In the Type field enter  RESOLUTION
    3. In the Value field, enter 32 hours. This is the target finish time.
    4. In the Unit of Measure field, enter HOURS.
 
 
 
Notice that if the SR has an associated asset, we want to use the asset's calendar to calculate the dates and not the SLA default calculation calendar (this options is only enabled by IBM Maximo for Service Providers).
 
Now, let's see how it works on a service request. The details of the service request are as follows:
  • Asset: ASSET_TEST (uses DAY calendar, with a 07:00~15:00 shift, 8 work-hours, Mon~Fri)
  • Reported Date: 25/Oct/13 12:30 (Friday)
 
In the service request, we select the Apply SLA action, and the following message is shown:
 
We want the SLA to use the asset's calendar to calculate the target dates as first option.
RESPONSE = Reported Date + 4 hours. Using the asset's calendar (shifts end at 15:00), we have only 2:30 hours left for the day. So, we should carry 1:30 to the next working day. The result: Target start date = 28/Oct/13 08:30 (Monday).
RESOLUTION = Reported Date + 32 hours. Again using the asset's calendar (8-hour shift), we have to add 4 working days to the reported day.  The result:  Target finish date = 31/Oct/13 12:30 (Thursday).
 
 
So far, so good.
 
Now let's try a service request, without an asset.
 
SR:
  • Reported Date: 25/Oct/13 12:30 (Friday)
 
As the SR doesn't have an asset, the SLA should use the default calculation calendar to calculate the dates (WORK calendar).
 
So we have:
  • Target start date = 25/Oct/13 16:30
  • Target finish date = 31/Oct/13 08:30
 
 
Note that the target finish date isn't 31/Oct/13 12:30, but 31/Oct/13 08:30.
 
That's because the shift is from 08:00 to 17:00, having a total of 9 hours. Even though the shift is set as 8 working hours, we have no information about this 1 hour break. So the SLA considers just the start/end time of the shift to make the date calculation. Any value added to work hours won't be considered by SLA calculations.
 
For holidays, you should use the Apply non-working days action on the calendar. It won't work if you just use 0 (zero) work hours for that particular day (same for weekends).

Maximo server crashes when fetching large number of records

Problem(Abstract)

Maximo7.5 server crashes with Out Of Memory exceptions when fetching a large number of records from SQL Server.

Symptom

When fetching a large number of records ( eg: around a million ) , the Maximo server freezes and eventually crashes and one can see Out of Memory exceptions and SQL Server jdbc exceptions in the application server logs.
This has so far been reported from Maximo 7.5 environments using SQL Server only.

Cause

This is caused by the way the new SQL Server jdbc driver used in Maximo 7.5 handles the records fetched from the database.

Resolving the problem

There is an APAR created for this issue - APAR IV12954. Please contact IBM Support for a 
solution.
Source : http://www-01.ibm.com/support/docview.wss?uid=swg21592711
 

Installing Maximo 7.5 on Windows server 2012

While installing Maximo 7.5 on Windows server 2012 you might want to look at the provided link to a technote with some helpful information

http://www-01.ibm.com/support/docview.wss?rs=0&context=SSLKT6&uid=swg21660548

Adding a toolbar button in an Application for an Automation Script

This will show you how to add a toolbar button for an Automation script. I have included a “dummy” script that does not do much,
it is just to show you how to add a toolbar button to an application.

Create the script.

First go to Automation Scripting and create a new Action Launch Point.image
For this purpose, I called my Launch Point MYSCRIPT and left the Action to MYSCRIPT as well.image
Notice that I picked ASSET for my object, I plan to add this button to the Asset Application. I then select a name for my actual script,
I just left it as MYSCRIPT but changed the debug level to DEBUG.image
Add your code to the next dialog box and create the Launch Point. If you do not have a code to test with, here is a piece of code that print some
Work Orders in the log,
from psdi.server import MXServer
from java.text import SimpleDateFormat
sdf = SimpleDateFormat
fmt_out = sdf('yyyy-MM-dd HH:mm')

whereClause = "wonum in ('1000', '1001', '1002')"

mboMainSet = MXServer.getMXServer().getMboSet("workorder", MXServer.getMXServer().getSystemUserInfo())
mboMainSet.setWhere(whereClause)
mboMainSet.reset()
mainCount = 0

print "Running Automation Script."
while mboMainSet.getMbo(mainCount) is not None:
    myMbo = mboMainSet.getMbo(mainCount)
    mainCount = mainCount + 1
    print "Work Order: " + myMbo.getString("wonum") + " " + myMbo.getString("description")
    print "Status: " + myMbo.getString("status") + " " + fmt_out.format(myMbo.getDate("statusdate"))
This script shows you how to get a Mbo set from any object in Maximo and also how to format a date in case you want a specific date format.

Add toolbar button to application

Go to Application Designer and bring up the Asset Application, bring up the Add/Modify Signature Options dialog box from the Select Action menu.
Click new row. Add your Action, make sure you expand the Advanced section and select the “Action” option.image
Bring up the Add/Modify Toolbar Menu dialog box from the Select Action menu. Click new row. Add your new Signature Security Option,image
In this case, Tabs were chosen to be MAIN, if you want to be able to run the report from any tab, set it to ALL.

Enable toolbar button in Security Groups

Go to Security Groups and find your group that will be using this toolbar button, I used MAXADMIN in my demo database.
Bring up the Asset application and find “Run my script” and check it.image
Save, sign out and sign in again with a user belonging to your group. The icon will appear as a running man in the toolbar, right next to create report.image

Enable logging for the script

Clicking the Run My Script button does not do much since we set the Log level to DEBUG. If you want to see the output in the log,
either change the logging level for Autoscript to DEBUG or change the script log level to INFO. I chose to enable the DEBUG logging,image
Set the Log Level to DEBUG, save and Apply Settings, the next time you run the script you should see something like this in the log,

JMS Messaging - High availability, scalability and Maximo Integration Framework using a single Service Integration Bus

T he first is configuring the JMS resources for scalability and the second is configuring the messaging engines for highly availability. For...