Thursday, April 22, 2010

SQL Server 2000 - Implement Password Policy

Password composition & Minimum password length
No SQL Server 2000 policy/settings can be set to enable this minimum password length for sql server login,
Workaround :- Set a new sp_password_neww to implement the feature or replace the existing sp_password procedure. (If Upgrading the SQL Server 2000, the original sp_password have to be put back) .

For creating a new sp_password_new and sp_addlogin_new
To make sure that the old procedures are not used, revoke execute permissions for both the SP_ADDLOGIN stored procedure and for the SP_PASSWORD stored procedure.Important :- The sa must not use Enterprise Manager, or use any other application that uses menu-driven methods for adding logins.

add the below for the sp_addlogin
if @passwd is NULL
Raiserror 20010 'The new password can not be blank/NULL.'
return (1)

if len(@passwd) < 6
Raiserror 20020 'The new password can not be less than 6 characters.'
return (1)

if not (@passwd like '%[0-9]%' and @passwd like '%[a-z]%')
Raiserror 20020 'The new password must be alphanumeric.'
return (1)

Number of unsuccessful logons before lockout & Lockout duration
Unable to implement this on SQL 2000, since we're using sql server login and this feature are not availaible in Microsoft SQL 2000 it is only if we used Windows integrated login that it can be implemented. SQL 2000 don't have the "Alter Login ...." command
Info :

How to implement password expiration dates for SQL Server 2000 or SQL Server 7.0 login IDs.

Sunday, April 11, 2010

Oracle Forms Report Crash while generating Excel output, REP-56049

If you have encounter the error REP-56048: Engine rwENG-1 Crashed , job id: 39021, then you need to increase the memory settings of the reports.

to do this, in the $ORACLE_HOME/reports/config ,find your report config file
and change the engine id,

engine id="rwEng" class="oracle.reports.engine.EngineImpl" initengine="1" maxengine="1" minengine="0" englife="1" maxidle="30" callbacktimeout="90000" jvmoptions="-Xms64m -Xmx32m -Xss8192k -Xoss8192k"

with jvmOptions to a higher value e.g.

engine id="rwEng" class="oracle.reports.engine.EngineImpl" initengine="1" maxengine="1" minengine="0" englife="1" maxidle="30" callbacktimeout="90000" jvmoptions="-Xms512m -Xmx1024m -Xss8192k -Xoss8192k"

Restart the forms services after this.

If you still encounter this problem after increasing the memory and you oracle forms version is Do the below,

1. Apply the latest patch set and then apply the 6835690 patch 6835690 to run the report with enhancedspreadsheet. Download and apply the Patch:5983622 for

Note: The one-off patch:6835690 to get EnhancedSpreadsheet can be applied on release too, but it is always recommended to upgrade to the latest patchset available. Right now the latest one is patchset 3.

3. To make sure the middle tier was successfully upgraded to patchset 3 (, execute the following url and command:

$ORACLE_HOME/Apache/Apache/bin/httpd -version

Both versions, Oracle HTTP Server (OHS) and Oracle Reports should be

4. Apply one-off patch 6835690 needed to work with EnhancedSpreadsheet desformat.

After that , change the format to DESFORMAT=ENHANCEDSPREADSHEET has been introduced to generate large data sets (up to 75,000 rows) to spreadsheets as indicated patch:6835690