Search This Blog

Monday, July 21, 2014

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,

Hide classifications so they can no longer be seen by users


1) Go To Database Configuration
2) Add a field to classstructure to mark a Classification as obsolete/inactive/etc:



3) Go to the Application Designer.
4) Open the Classifications application and add field called Inactive:



5)Go to the Conditional Expression Manager application.
6) Create a conditional expression to hide a classification marked as Inactive:



7) Go To the security groups application and create a new Global Data Restriction so all users are only allowed to retrieve
classifications that are not marked as inactive.

Note: if you only wanted this to apply to certain security groups, you could add this restriction as a data restriction for specific security groups in the Security Group application.
Also, you can choose to fill in the Application field or not. If you do not fill this field in, the restriction will apply to all applications, but if you specify an application, the restriction will only apply to the specific application:



8) Go to the Classifications Application and mark a classification as Inactive:



9) The classification is no longer available for selection in the Classify dialog:


MAS and Manage custom resources are not reconciled

  After a change was applied to IBM Maximo Application Suite (MAS) or IBM Maximo Manage, the custom resources are not reconciled. For exampl...