Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Friday, June 13, 2008

Windows domain account locks out every few minutes

I have a strange problem with my new laptop which has Windows XP SP3 and Microsoft Services for Unix 3.5 installed. Every few minutes it locks out my windows domain user. Usually I do not shutdown my laptop and take it home in hibernate mode. I work at home and do not shutdown again and bring it back tor work. Whenever I am back in office, in the morning, I find my a/c is locked out. I am not very sure if it has anything to do with Windows XP SP3 and Microsoft Services for Unix, because I had that on my previous laptop too.

I see these errors in the event log:

Event Type: Error
Event Source: Userenv
Event Category: None
Event ID: 1053
Date: 6/13/2008
Time: 4:02:15 PM
User: NT AUTHORITY\SYSTEM
Computer: T00560403
Description:
Windows cannot determine the user or computer name. (An internal error occurred. ). Group Policy processing aborted.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

I finally figured out what was wrong. I recently changed my domain password. I have a Linux server on which I have configured printing to Windows printers for which I use the domain username and password. When I changed my password, I did not change it in Linux printer configuration. As a result, Linux was trying to connect to the printer every 60 minutes with my old password. Because of this the password kept getting locked out. I corrected the password in my linux server and the problem went away.

Thursday, June 12, 2008

Command line Pasta through FNDPSTAX

When using the Pasta utility from the command line, you can use the options below.

FNDPSTAX [options]

-c
specifies the number of copies to print.
-el
Specifies the error log file’s path and name. The path is the absolute path to the error
log file.
-f<lename>
specifies the input file name. Example: -fmyfile.txt
-F
Specifies the configuration file’s path and name.
-h
Adjusts the space between lines. The default value is 1.0. If is larger than 1, the
space between lines will be larger.
-w
Adjusts the space between characters. The default value is 1.0. If is larger than
1.0, the space between characters will be larger.
-l
Print in landscape mode. (The default is portrait).
-o<lename>
specifies the output file name.
-s
Overrides the font size option in pasta.cfg.
-bs
Overrides the font size in -s and fontsize for bold font.
-np
No print option.
-ph
specifies the paper height in inches.
-pw
specifies the paper width in inches.
-pform
Converts a PostScript file to a PrintForm file .
-pf
specifies a PrintForm file to be merged in a Pasta output at runtime.
-pn
specifies the printer name.

-t
Banner option for use with the Unix lp command.
-v
Displays the version number.
-xauto]>
Specifies the output format. Two output formats are supported: PostScript ("ps") and
text ("text").

Example:


$ FNDPSTAX -pnPrinter007 -f/tmp/kanban.zpl -c1
request id is Printer007-900 (1 file(s))

Add new printer to Apps

To add a new printer to Apps follow these steps:

1. Add the printer to the unix box on which your concurrent managers are running


2. Check whether the printer has been added correctly
cat /etc/printers.conf

3. Test whether you can print a text file to the printer

lp -d newprinter /etc/hosts

Submitting Print Requests Using a Printer Name

Whether or not a default printer has been designated for your system, you can submit print requests to any printer that is configured for your system. To submit a print request to a specific printer, type the following command.


$ lp -d printername filename 

In the previous example, printername is the name of the specific printer and filename is the name of the file you want to print.

The specified file is placed in the print queue of the destination printer, and the request id is displayed.

For example, to print the /etc/profile file on the printer fastprint, type the following command.


$ lp -d fastprint /etc/profile
request id is fastprint-1 (1 file(s))
$

If you submit a request to a printer that is not configured on your system, an information message is displayed, as shown in the following example.


$ lp -d newprint /etc/profile
newprint: unknown printer
$

See System Administration Guide: Advanced Administration for information on configuring printers. See Determining Printer Status for information about how to find out which printers are available on your system.

Requesting Notification When Printing Is Complete

When you submit a large file for printing, you might want the LP print service to notify you when printing is complete. You can request that the LP print service notify you in two ways:

  • Send an email message

  • Write a message to your console window

To request email notification, use the -m option when you submit the print request.


$ lp -m filename 

To request a message be written to your console window, use the -w option when you submit the print request.


$ lp -w filename 

In the previous example, filename is the name of the file you want to print.

Printing Multiple Copies

You can use the -n option to the lp command to print more than one copy of a file.

Use the following command syntax to request multiple printed copies.


$ lp -n number filename 

In the previous example, number is the desired number of copies and filename is the name of the file you are printing. The print request is considered as one print job, and only one header page is printed.

For example, to print four copies of the /etc/profile file, type the following command.


$ lp -n4 /etc/profile
request id is jetprint-5 (1 file)
$

Summary Table of lp Options

You can use options to the lp command to customize your print request. Table 8–1 summarizes the frequently used options for the lp command. You can use these options individually or combine them in any order on the command line. When you combine options, use a space between each option and repeat the dash (-).

For example, to specify a destination printer, request email notification, and print six copies of a file, type the following command.


$ lp -d printername -m -n6 filename 

In the previous example, printername is the name of the desired printer and filename is the name of the file you want to print.

Table 8–1 Summary of Frequently Used lp Options

Option

Description

-d

Destination. Specifies a destination printer by name.

-m

Mail. Sends email to the requestor when the file has printed successfully.

-n

Number. Specifies the number of copies to be printed.

-t

Title. Specifies a title (printed only on the banner page) for a print request.

-o nobanner

Option. Suppresses printing of the banner page for an individual request.

-w

Write. Writes a message to your terminal when the file has printed successfully.


4. Check the status of your print request

The following example shows that user fred has one print request queued on the printer luna.


$ lpstat
luna-1 fred 1261 Jul 12 17:34

The following example shows that the user paul currently has no print requests in queue.


$ lpstat -u paul 

The following example shows that two print requests are queued on the printer moon.


$ lpstat -o moon
moon-78 root 1024 Jul 14 09:07
moon-79 root 1024 Jul 14 09:08


5. Ask someone present near the printer to see if it printed correctly

6. Login to apps as a user with System Administrator responsibility. Follow this navigation:

Install - Printer

Forms for Dening Printer Support
You use four forms to define printer support.

Printer Types
You must define any printer types used at your site that are not shipped with Oracle
Applications. It is on this form that you associate the print style with a printer driver
for the particular printer type.

Printers
You register a printer so that Oracle Applications recognizes the printer and can forward
to it the output from a report program.
To register a printer you specify the printer’s operating system name, which uniquely
identifies the printer, and select the printer type. The printer type must already be
defined.
For example, if you want users of Oracle Applications to be able to print to a newly
purchased printer, you:
• Register the operating system name of the new printer (for example, printer39), and
select the printer type (for example, LN03).
• If the correct printer type is not defined, you must define the new printer type before
you can register the printer.

Print Styles
To generate a report, the print style values for columns and rows are passed by the
concurrent manager to Oracle Reports. A print style determines the dimensions of your
report, or the number of rows and columns per page.

Printer Drivers
A printer driver includes the initialization and reset strings that format and restart a
printer. You need a defined printer driver for each print style that you plan to use with a
specific printer type on a specific platform.
Printing Setup Interrelationships
  • Many printers can be registered as the same printer type.
  • A printer type can support multiple print styles.
  • A printer driver must be assigned to a printer type for each print style.
  • Many printer drivers can support the same print style.
  • Many printer drivers can support the same printer type.
Metalink Note:218808.1 describes the printer drivers provided along with a standard apps 11i installation on unix.

I'll update this post with troubleshooting print issues

java.lang.NoClassDefFoundError: Could not initialize class oracle.apps.fnd.profiles.Profiles

Two days back, this error was reported to me. This was for an instance which has 4 application tier nodes which means 4 physical servers which run Apache/Forms. There is a BigIP load balancer configured which manages the load between the 4. Some users were getting this error on their browsers when they were trying to access the AppsLogin page which has username and password fields.

This appeared to be a problem in one of the application server's jserv. To isolate this is what I did:

BigIP URL: http://bigip.justanexample.com/oa_servlets/AppsLogin

I changed this first to: http://server1.justanexample.com/oa_servlets/AppsLogin in the browser.
Page appeared.
Then, I changed it to http://server2.justanexample.com/oa_servlets/AppsLogin
Page appeared
Then, I changed it to http://server3.justanexample.com/oa_servlets/AppsLogin
Error appeared: java.lang.NoClassDefFoundError.........
Then, I changed it to http://server4.justanexample.com/oa_servlets/AppsLogin
Page appeared

We checked mod_jserv.log of Server3:

mod_jserv.log:[10/06/2008 20:08:18:616] (ERROR) ajp12: Servlet Error: java.lang.NoClassDefFoundError: Could not initialize class oracle.apps.fnd.profiles.Profiles: Could not initialize class oracle.apps.fnd.profiles.Profiles


It was clear that the problem was with Jserv of server3.

So I got Apache bounced on server3.

Even after bounce it didn't work.

We checked for any orphan Apache / Jserv processes and found this one still running after stopping Apache:

applmgr 27925 1 0 May 11 ? 4:20 /apps11i/erp/comn/util/java/1.4/j2sdk1.4.2_04/bin/java -ms128m -mx256m -cla

We killed this process:

kill -9 27925

Started Apache.

Server 3 URL http://server3.justanexample.com/oa_servlets/AppsLogin started working.

User was requested to retest for the issue. They confirmed that the problem was resolved.

Metalink Note 461872.1 describes this problem:

Symptoms

After any configuration change, while trying to login using http://machine.domain:port/OA_HTML/AppsLocalLogin.jsp


ERROR
--------
"Exception: java.lang.NoClassDefFoundError: Could not initialize class oracle.apps.fnd.profiles.Profiles"in mod_jserv.log

Cause

Bug 4466442: APPSLOCALLOGIN FAILS WITH NOCLASSDEFFO
UNDERROR: ORACLE/APPS/FND/PROFILES/PROFILE.
This bug outlines the issue that you encounter: java.lang.NoClassDefFoundError:

Java Cache port is busy in that machine.

Solution

To implement the solution, please execute the following steps:

1. If you have multiple application tiers, check the value of s_java_object_cache_port to be same in all.
2. Check if you any dummy process is occupying port specified by s_java_object_cache_port in Context XML file.
Try to kill the process
(or )

3. Change the avlue of s_java_object_cache_port in Context XML file to unused port number
4. Run autoconfig to reflect the changes in the system

We had followed this note but the s_java_object_cache_port was not occupied by any process. However we resolved the problem by making sure no Apache / Jserv processes were running after Apache shutdown and then restarting Apache through adapcctl.sh start

Tuesday, June 10, 2008

Monitor free memory in SGA

I came across this script to monitor free memory in SGA in Oracle wiki.

select POOL, round(bytes/1024/1024,0) FREE_MB
from v$sgastat
where name like '%free memory%';

POOL............FREE_MB
------------ ----------
shared pool.........293
large pool............7
java pool.............8

Had been looking for this one for some time.

ORA-04030 during ASCP data pull

Maran pinged me today for error during ASCP Data pull. The MSCPDPW module: Planning Data Pull Worker was erroring out with these errors:

Procedure LOAD_SALES_ORDER(2) started.
Error pulling data from MRP_AP2_SALES_ORDERS_V to MSC_ST_SALES_ORDERS.
ORA-04030: out of process memory when trying to allocate 2136 bytes (kxs-heap-c,qkkele)
ORA-02063: preceding line from ASCP2OLTP
ORA-04030: out of process memory when trying to allocate 2136 bytes (kxs-heap-c,qkkele)
ORA-02063: preceding line from ASCP2OLTP
+---------------------------------------------------------------------------+
End of log messages from FND_FILE
+---------------------------------------------------------------------------+

I went through metalink note 233869.1 Diagnosing and Resolving ORA-4030 errors. The note is quite good and gives good insight. I also went through this presentation from Pythian Group titled Working with Automatic PGA, about which I found from Jonathan Lewis' site. The current setup in the instance was:

sga_max_size = 4G
sga_target = 3G
pga_aggregate_target=2G

I increased pga_aggregate_target=3G by

alter system set pga_aggregate_target=3G;

Data pull completed without issues after this change.
+---------------------------------------------------------------------------+
Executing request completion options...


Output is not being printed because:
The print option has been disabled for this report.


Finished executing request completion options.

+---------------------------------------------------------------------------+
Concurrent request completed
Current system time is 10-JUN-2008 10:20:56

+---------------------------------------------------------------------------+
~