Friday, October 30, 2015

WebSphere Installation - Port 80 is Not Avaialbe


while installing Maximo/WebSphere, you may encounter an issue with Availability of Port (mostly Port 80).

Resolution:

Generic about checking Port Availability:

To check which all ports are being used, run this on command prompt (in windows):
         netstat -an
Output of above command will show all the ports which are in use.

To check a specific port (e.g. Port 80), run the following command (in windows):
         netstat -an | find "port_number"
         netstat -an | find "80"
If above command returns any output, that means port is in us.
If above command doesn't return any output, Port is Free, and can be used.

Work Around for WebSphere Port 80 Issue:

Go to Administrative Tools in Windows
Open Internet Information Services (IIS) Manager
Expand Server Node (Host Name) on the left panel
Expand Sites
Click on Default Web Site
On right panel, click on Bindings
New window will open with List of Bindings, select http, click on Edit button
Change Port from 80 to 8080, click Ok, click Close
Select Server Node (Host Name) on the left panel again and click on Restart Server from the right panel to restart IIS Server,
No reboot is required.

Now you can proceed with the Installation, error should be resolved.


CTGIN8247E: Required Hostname: System hostname is not fully qualified


while Installing WebSphere, you may encounter this issue of Hostname qualifier.

WebSphere installation requires fully qualified hostname which means it should have a DNS entry or domain name i.e. .com after the hostname (computer name).

Workaround:

  1. Go to Computer Properties
  2. You will see a link Change Settings in front of Compute Name (admin access required here)
  3. In the Properties window, you will see a button called Change...,click that
  4. Below the Computer name, you will see another button called More..., click that
  5. This is the place where you give DNS Suffix which makes your Computer Name as Fully Qualified Hostname.
  6. Type com (no dot symbol)
  7. It will require a Reboot/Restart

Thursday, September 3, 2015

Creating a Menu in Maximo

Creating or Modifying a Menu in Maximo


  • The options other than Select Value, that appear when the lookup icon is selected next to a field come from the menu associated to that field.
  • In Application Designer, the properties for a textbox include an option called Menu Type. These Menu Type values are referencing a menu id in the MENUS.xml file.
  • In App Designer in the Select Action menu there is an option to Export System XML.
  • From this option you can select MENUS.xml, save the file to your desktop, and make a copy for a backup.
  • Open the MENUS.xml file to be changed with a text editor. Each menu in Maximo exists as a section in the MENUS.xml file and is referenced by a menu id.
  • If you wanted to modify a menu you could select the application the field that launches this menu resides in, find the field and select the Control Properties tool bar icon.
  • Find the Menu Type value in the properties for that textbox. Make note of this value. Open the MENUS.xml file with a text editor. 
  • Find the menu id from the previous step to find that menu section in the MENUS.XML file. 
  • Copy the menu section, and paste the copied section back into the MENUS.xml file. 
  • Give the copied section a unique menu id. 
  • Delete or Remove the options from the menu to modify the menu to your liking. 
  • Save the MENUS.xml and re import the xml file using the Import XML option in App Designer. 
  • To reference the new menu id you will need to change the Menu Type reference for the field you are associating and launching the menu from to the menu id created for the new menu.

Friday, August 7, 2015

Deleting Maximo Application

Deleting Maximo Application

Deleting an application in Maximo is not possible from Front End and it's not advisable too. You can remove the security rights of that application so that it doesn't appear in Go To list.

Still, if you want to delete an Application in Maximo, you have to accomplish it using SQL Scripts which will be executed in the back-end.

Following are the scripts:
delete from maxapps where app='<appName>';
delete from maxpresentation where app='<appName>';
delete from sigoption where app='<appName>';
delete from applicationauth where app='<appName>';
delete from maxlabels where app='<appName>';
delete from maxmenu where moduleapp='<appName>' and menutype !='MODULE';

To remove Label information from database, run the following queries:

delete from L_SIGOPTION where L_SIGOPTIONID in (select L_SIGOPTIONID from SIGOPTION,L_SIGOPTION  
  where (SIGOPTION.SIGOPTIONID=L_SIGOPTION.OWNERID AND app='<appName>'))

delete from L_MAXLABELSID where L_MAXLABELSID in (select L_MAXLABELSID from MAXLABELS,L_MAXLABELS
  where (MAXLABELS.MAXLABELSID=L_MAXLABELS.OWNERID AND app='<appName>'))

delete from L_MAXMENUID where L_MAXMENUID in (select L_MAXMENUID from MAXMENU,L_MAXMENU where (MAXMENU.MAXMENUID=L_MAXMENU.OWNERID AND moduleapp='<appName>'))

Tuesday, August 4, 2015

Changing maxadmin Password

Changing maxadmin Password


If you don't know maxadmin password then there is no way to get it from any of the property file or config file in maximo.

Then how can we reset it

Answer is - you have to update it to a known encrypted password in database using sql command.

Pre-requisite: you should have write access to MAXUSER table under maximo schema.

Procedure to reset the password:


1) Go to development or any environment for which you know the password of maxadmin or any user.
2) Run the following command to retrieve the encrypted password of known user

               Select userid, password from maxuser where userid = 'anyUser'
               For example: Select userid, password from maxuser where userid = 'MAXADMIN'

3) Copy the encrypted password
4) Go to the environment for which you don't know the maxadmin passwrod.
5) Run the following command to reset the password. Please note your update sql statement will depend on the database which you are working on due to hexa decimal value format of encrypted password.

         Oracle: UPDATE maxuser SET PASSWORD = '<value>' WHERE userid = '<user>';
         SQL Server: UPDATE maxuser SET PASSWORD = 0x<value> WHERE userid = '<user>';
         DB2: UPDATE maxuser SET PASSWORD = x'<value>' WHERE userid = '<user>';

Example:

         Oracle: UPDATE maxuser SET PASSWORD = '10fe6f4d7e6133e64' WHERE userid = 'MAXADMIN';

         SQL Server: UPDATE maxuser SET PASSWORD = 0x10f2121d7e6133e64 WHERE userid = 'MAXADMIN';

         DB2: UPDATE maxuser SET PASSWORD =x'10fe6f46507e6133e64' WHERE userid = 'MAXADMIN';


Thank you for reading...

Wednesday, July 29, 2015

Duplicating a Maximo Business Object or Maximo Table (Maximo 7.5)


Duplicating a Maximo Business Object or Maximo Table (Maximo 7.5)


In Database Configuration application in Maximo, you are not allowed to Duplicate an existing Object. But if there is a requirement, you can accomplish it using database back end operation.

Though object/attributes can be created from backend, but their entry must be populated in metadata tables of Maximo which are: MAXOBJECTCFG, MAXOBJECTCFG, MAXTABLECFG

How are we going to accomplish it:
  1. We will populate the Object and Attribute Data in Maximo Metadata Tables
  2. We will run config db which will create the Object and Attributes in the database
  3. We will create a custom SEQUENCE which will be associated with ID field of the Duplicated Object using back end SQL insert query.

Before we start, detailed knowledge about how database configuration works in Maximo is required.

CHANGED flags in Configuration or Metadata Tables of Maximo
  1. when you add an Object : CHANGED field in MAXOBJECTCFG table will be set to I
  2. when you add an Attribute:  CHANGED field in MAXATTRIBUTECFG table will be set to I
  3. an entry is added in MAXTABLECFG table - no flag in this table 
Note: On Deletion: flag will be set to R, on Change: flat will be set to A

Setting above flags are required when you insert records in Maximo Meta data Tables. Now take export of following tables using SQL Developer or any other tool.

<Ex-Object> here should be replaced with the Object Name which you want to duplicate. In this case, we are going to create a duplicate object of ITEM and we'll give the name to new object as NEWITEM


select * from MAXATTRIBUTECFG where OBJECTNAME ='<Ex-Object>';
select * from MAXOBJECTCFG where OBJECTNAME ='<Ex-Object>';
select * from MAXTABLECFG where tablename ='<Ex-Object>';

Post Export: Changes in MAXATTRIBUTECFG export file

Changes in MAXATTRIBUTECFG export excel
OBJECTNAME Custom Object Name
ATTRIBUTENAME Custom Attribute Name - you may retain the existing attribute name as well
ALIAS it will be same as the ATTRIBUTENAME, change it if you have made a change in ATTRIBUTENAME
AUTOKEY if required, create an Autokey and give that name here
ATTRIBUTENO you can give in sequence
CLASS if an Autokey is associated then provide 1 else it should be 0
CANAUTONUM remove existing class names, provide custom class if any
COLUMNNAME it will be same as the ATTRIBUTENAME, change it if you have made a change in ATTRIBUTENAME
DEFAULTVALUE you may change or retain it's value
DOMAINID you may change or retain it's value
EAUDITENABLED you may change or retain it's value
ENTITYNAME will always be same as the OBJECT name
ESIGENABLED you may change or retain it's value
ISLDOWNER set it to 1 it this custom attribute will have Long Description
ISPOSITIVE applicable for Numbers
LENGTH you may change or retain it's value
MAXTYPE you may change or retain it's value
MUSTBE it's related with SAMEASOBJECT and SAMEASATTRIBUTE concept
REQUIRED you may change or retain it's value
PERSISTENT you may change or retain it's value
PRIMARYKEYCOLSEQ this sequence depends on the business logic behind your application, this is Unique Index Sequence
REMARKS Description of the Attribute which is displayed on the screen when pressed for Help
SAMEASATTRIBUTE it's related with SAMEASOBJECT and SAMEASATTRIBUTE concept
SAMEASOBJECT it's related with SAMEASOBJECT and SAMEASATTRIBUTE concept
SCALE you may change or retain it's value
TITLE Screen Lable of the Custom Attribute
USERDEFINED it will be 1 by default
CHANGED Set it to I - this is most important, I stands for Insert
SEARCHTYPE you may change or retain it's value
MLSUPPORTED you may change or retain it's value
MLINUSE you may change or retain it's value
HANDLECOLUMNNAME Name of the handle column, for supporting DB2 text search.
MAXATTRIBUTEID MAXATTRIBUTECFGSEQ.NEXTVAL - this is most important
RESTRICTED you may change or retain it's value
LOCALIZABLE you may change or retain it's value
ROWSTAMP remove this row from your excel, it's not required
TEXTDIRECTION The orientation of text that you enter into fields. - Not Important
COMPLEXEXPRESSION Type of Complex Expression - Not Important

MAXATTRIBUTECFG data is prepared in excel.

Post Export: Changes in MAXOBJECTCFG export file


Changes in MAXOBJECTCFG export excel
OBJECTNAME Custom Object name
CLASSNAME psdi.mbo.custapp.CustomMboSet OR your custom class name
DESCRIPTION Description of the custom object
EAUDITENABLED you may change or retain it's value
EAUDITFILTER you may change or retain it's value
ENTITYNAME It will be same as the new custom object name
ESIGFILTER not important
EXTENDSOBJECT applicable in case of View
IMPORTED not important, appicable in case you are importing this data through MIF
ISVIEW depends on your business scenario
PERSISTENT depends on your business scenario
SERVICENAME you may change or retain it's value
SITEORGTYPE you may change or retain it's value
USERDEFINED it will be 1 by default
CHANGED IMPORTANT - Change it I (I for Insert)
MAINOBJECT you may change or retain it's value
INTERNAL you may change or retain it's value
MAXOBJECTID MAXOBJECTCFGSEQ.NEXTVAL
ROWSTAMP Remove it, it's not required
TEXTDIRECTION not important

MAXATTRIBUTECFG data is prepared in excel.

Post Export: Changes in MAXTABLECFG export file


Changes in MAXTABLECFG export excel
TABLENAME Custom Object Name
ADDROWSTAMP 1
EAUDITTBNAME you may change or retain it's value
ISAUDITTABLE you may change or retain it's value
RESTOREDATA 0
STORAGEPARTITION don't change
TEXTSEARCHENABLED don't change
LANGTABLENAME you may remove it or change the value to create LANG table
LANGCOLUMNNAME change it if given value for LANGTABLENAME
UNIQUECOLUMNNAME NEWITEMID - Unique Column Name of the Object
ISLANGTABLE depends
MAXTABLEID MAXTABLECFGSEQ.NEXTVAL
ALTIXNAME not required
TRIGROOT NEWITEM - it's important
CONTENTATTRIBUTE not required
ROWSTAMP not required

 
MAXTABLECFG data is also prepared in excel.


As we have all the data prepared in excel, we have to create the Insert SQL Queries. This can be easily done by using Excel functions such as Concatenate.

Once you are done with all the prerequisite tasks described above, run the prepared SQL Insert Query in you database (take database backup first to avoid any issues).

Sequence: Using the folllowing query, create a Sequence which will be associated with NEWITEMID field in MAXATTRIBUTECFG.

1. Insert an entry into Maximo Metadata table
insert into MAXSEQUENCE (TBNAME,NAME,MAXRESERVED,SEQUENCENAME,MAXSEQUENCEID)
values

('OTECPRODMASTER','OTECPRODMASTERID',0,'OTECPRODMASTERSEQ',
MAXSEQUENCESEQ.NEXTVAL);
2. Create a sequence in database
CREATE SEQUENCE OTECPRODMASTERSEQ
      START WITH 1 INCREMENT BY 1 NO MAXVALUE NO CYCLE CACHE 24;

3. It's done now, SEQUENCENAME field in MAXATTRIBUTECFG is Non-persistent i.e. it's not in DB, Maximo business will fetch it's value using relationship and show it in DB Config application.

Once you commit the DB Changes, go to Database Configuration application in Maximo. When you hit Enter on the List tab, you will see newly created custom/duplicated Object NEWITEM and which will be marked for 'To be Added' and in Attributes tab, all the duplicated Attributes will be marked for 'To be Added'.

Now you can start the Admin Mode and run Configure Database. After the configuration is complete, duplicated object NEWITEM is ready to use.

I know this is a lengthy way but I just wanted to document it that duplication of an Object in Maximo can be accomplished using backend.

Thank you for reading...

Thursday, July 9, 2015

CWSIP0362W: The message with id 121332324 can not be deleted from destination CQINBD as the message has been delivered to a consumer.


JMS Messages are stuck in Queue with Removing Status

To Delete these messages:

Stop only the Enterprise Application (the place where you deploy EAR) and keep the Application Instance (MXServer) running.
This will allow you to get access to Bus and Queue with runtime check and then you can delete the messages you want.