Wednesday, January 28, 2026

how to export certificate in pem format | SSL / TLS issues.

For TLS implementation in EBS it support PEM format.  

    Exporting a certificate in PEM format depends on your current file type (e.g., .pfx, .cer, .der) or the tool you are using. 
    1. Using OpenSSL (Cross-Platform)
    OpenSSL is the most common tool for converting certificates. 
    • From PFX (.p12 / .pfx): To export the certificate and private key together:
      openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
    • From DER (.cer / .der): To convert a binary DER file to a text PEM file:
      openssl x509 -inform der -in certificate.cer -out certificate.pem
    • From P7B (.p7b): To convert a PKCS#7 file:
      openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
       
    2. Using Windows Certificate Export Wizard
    If the certificate is already installed on your Windows system:
    1. Open certmgr.msc (User) or certlm.msc (Local Computer).
    2. Right-click your certificate → All Tasks → Export.
    3. Select Base-64 encoded X.509 (.CER). This format is functionally identical to PEM.
    4. Complete the wizard and save the file. You can manually rename the extension from .cer to .pem if required by your application. 
    5. 3. Using a Web Browser
      To export a certificate from a website:
      • Chrome/Edge: Click the Padlock icon → Connection is secure → Certificate is valid → Details → Export. Choose Base-64 encoded X.509 or PEM if available.
      • Firefox: Click the Padlock → Connection secure → More Information → View Certificate → Details → Export. 
      4. Manual Creation (Combining Files)
      If you have separate .crt and .key files and need a single .pem file:
      1. Open a text editor like Notepad.
      2. Paste the contents of the certificate (including -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----).
      3. Paste the contents of the private key immediately below it.
      4. Save the file with a .pem extension.

Tuesday, January 27, 2026

txkPostPDBCreationTasks.pl error or FAIL

   763  echo $ORACLE_PDB_SID

  764  cd $ORACLE_HOME/appsutil

  765  . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME

  766  cd bin




Getting the datafile location...

ASM_CDB_DATAFILE_LOC: +DATA/PPRDCDB_PPRDCDBDR/DATAFILE

first_char: +

ASM_FLAG: 1


===================================

Inside generateSystemOraPasswd()...

===================================

File +DATA/PPRDCDB_PPRDCDBDR/DATAFILE/orapwPPRDCDB does not exist.

File +DATA/PPRDCDB_PPRDCDBDR/DATAFILE/orapwPPRDCDB does not exist.


Executing SYSTEM command: orapwd file=+DATA/PPRDCDB_PPRDCDBDR/DATAFILE/orapwPPRDCDB force=y dbuniquename=PPRDCDB_PPRDCDBdr


EXIT STATUS: 255

*******FATAL ERROR*******

PROGRAM : (txkPostPDBCreationTasks.pl)

TIME    : Tue Jan 27 12:21:19 2026

FUNCTION: main::generateSystemOraPasswd [ Level 1 ]

ERRORMSG: Password file creation did not go through successfully.




Fix :


Reset the system password using complexity like underscore or any other special charachter

Friday, December 19, 2025

FAQ: Oracle E-Business Suite and the Oracle Multitenant Architecture



Oracle E-Business Suite and Multitenant Architecture: A Practical Guide

Oracle E-Business Suite (EBS) has steadily evolved to align with modern Oracle Database capabilities, including the multitenant architecture. This article provides a consolidated, practitioner-focused overview of how Oracle E-Business Suite works with Container Databases (CDBs) and Pluggable Databases (PDBs), covering architecture, operations, patching, performance, and diagnostics.


1. Multitenant Architecture Overview for Oracle E-Business Suite

How EBS Supports Multitenant Databases

Oracle E-Business Suite supports a single-tenant multitenant model, where one Container Database (CDB) hosts exactly one Oracle E-Business Suite Pluggable Database (PDB). While this leverages multitenant technology, EBS itself does not currently support multiple PDBs within the same CDB.

Supported deployment combinations include:

  • EBS Release 12.2

    • On-premises with Oracle Database 19c or 23ai

    • OCI Base Database Service (1-node or 2-node)

    • Exadata Database Service (Dedicated Infrastructure or Cloud@Customer)

  • EBS Release 12.1.3

    • Oracle Database 19c (on-premises or OCI-supported platforms)

How Many PDBs Are Supported?

At present, Oracle E-Business Suite supports only one PDB per CDB. Running multiple EBS PDBs in a single container is not certified.

Licensing Considerations

Since EBS uses a single PDB per CDB, the Oracle Multitenant option license is not required. The multitenant licensing requirement applies only when more than one PDB is hosted in a CDB.


2. Infrastructure Considerations for Multitenant EBS

On-Premises Environments

When upgrading an Oracle E-Business Suite database to Oracle Database 19c, the database is converted from a non-CDB to a CDB with a single PDB as part of the upgrade process. This conversion is mandatory for EBS on newer database versions.

Oracle Cloud Infrastructure (OCI)

For EBS deployments moving to OCI database services—such as Base Database Service or Exadata—the database must also be converted to a multitenant architecture. This applies whether the migration is from an earlier database release or from on-premises infrastructure.


3. Working with the EBS Container Database (CDB)

Sourcing the CDB Environment

CDB-specific environment files reside under the database ORACLE_HOME. Administrators should source the appropriate environment file before performing CDB-level operations.

Connecting as SYSDBA

Once the CDB environment is sourced, connections to the container database are made using standard SYSDBA access via SQL*Plus.

Starting and Stopping the CDB

  • Single-instance systems use SQL*Plus startup and shutdown commands.

  • Oracle RAC environments use srvctl to manage the database across nodes.

Cloning EBS in a Multitenant Setup

In on-premises environments, the EBS Rapid Clone utility can be used to clone both the CDB and the associated PDB together. This ensures application and database consistency.


4. Managing the Oracle E-Business Suite PDB

Sourcing the PDB Environment

PDB-specific environment files are also stored in the ORACLE_HOME. These must be sourced before performing application-related database tasks.

Connecting to the PDB as SYSDBA

To connect directly to the PDB:

  1. Source the CDB environment.

  2. Set the PDB identifier.

  3. Connect using SYSDBA privileges.

Opening and Closing the PDB

The PDB is opened or closed from the CDB root using SQL commands. Administrators can also save the PDB state so that it automatically restores its open mode when the CDB restarts.

Viewing PDB Status

PDB details such as name and open mode can be queried using standard multitenant views. These views provide quick insight into PDB availability and state.

Switching Sessions from CDB to PDB

While logged into the CDB, sessions can be explicitly switched to the EBS PDB using an ALTER SESSION SET CONTAINER command.

Troubleshooting PDB Issues

If problems occur during PDB operations, plugin violation views can be queried to identify configuration or compatibility issues.

Can an EBS PDB Be Moved Between CDBs?

Currently, Oracle does not support unplugging and plugging an Oracle E-Business Suite PDB between CDBs, whether for relocation or cloning.


5. Multitenant-Specific Context Parameters

Oracle E-Business Suite uses several context file variables to support multitenant databases, including:

  • Indicators for pluggable database usage

  • CDB and PDB naming details

  • Database service naming conventions

  • Multitenant tenancy indicators

  • Network configuration paths

These parameters are automatically maintained and are critical for AutoConfig and runtime operations.

Running AutoConfig

Before running AutoConfig on the database tier, administrators must always source the PDB environment, not the CDB environment.


6. Migrating from Non-CDB to PDB

Data from an Oracle 12c non-CDB database can be moved directly into a PDB using Oracle Data Pump. This approach is commonly used during database upgrades and platform migrations for EBS Release 12.2.


7. Running SQL and EBS Scripts in a Multitenant Setup

When executing EBS database scripts:

  1. Source the CDB environment.

  2. Set the ORACLE_PDB_SID to the EBS PDB.

  3. Run the required SQL or utility scripts.

This ensures scripts execute in the correct container context.


8. Patching Oracle E-Business Suite Multitenant Databases

EBS Technology Codelevel Checker (ETCC)

ETCC validates whether required database and application tier patches are applied. Since it reads the EBS context file, the PDB environment must be sourced before execution. OCI environments require an additional parameter to indicate cloud deployment.

OPatch Inventory

The OPatch inventory for a multitenant database is listed the same way as a traditional database, by sourcing the CDB environment and running standard OPatch commands.

Preparing for Database Patching

Database patching is performed from the CDB environment. However, before running datapatch, ensure the EBS PDB is open, as SQL fixes apply only to active PDBs.


9. Performance Best Practices

To achieve optimal performance in Oracle E-Business Suite:

  • Follow Oracle-recommended performance methodologies

  • Apply recommended performance patches

  • Configure database initialization parameters as per the EBS release and database version

  • Remove obsolete or restricted parameters listed in Oracle documentation

These steps are critical for both stability and scalability.


10. Diagnostics and Monitoring in Multitenant EBS

Alert Logs and Trace Files

In a multitenant architecture, all alert logs and trace files for both the CDB and its PDBs are stored under the CDB diagnostic directory. The exact location can be retrieved from dynamic performance views.

AWR Reports for PDBs

  • In Oracle 12c, AWR data is collected only at the CDB level.

  • Oracle 19c introduces PDB-aware AWR reporting, with separate views for root-level and PDB-level statistics.

Administrators can generate AWR reports by selecting the appropriate data source during report creation.


Conclusion

Oracle E-Business Suite’s adoption of the multitenant architecture provides a modern foundation while maintaining a conservative, single-tenant design. Understanding the operational boundaries—especially around PDB limitations, patching, and diagnostics—is essential for administrators managing EBS on-premises or on Oracle Cloud Infrastructure.

With the right practices in place, multitenant EBS environments can deliver improved manageability, standardization, and alignment with Oracle’s long-term database roadmap.

Multipart Upload a large file to Oracle Cloud Infrastructure Object Storage using cURL

 When you have large files to be transferred either from on-premise or from another cloud to OCI, the best way is to do that is using Multipart upload. Multipart uploads help to accommodate objects that are too large for a single upload operation. OCI now supports doing multipart upload from cURL directly instead of using SDK’s or oci-cli. With a Pre-Authenticated URL (PAR) you can avoid configuring API keys and sharing it with external parties. PAR URL can provide a quick and secure way to upload files to OCI object storage.

The maximum size for an uploaded object is 10 TiB on OCI and object parts cannot be larger than 50 GiB. It is highly recommended to use multipart uploads to upload objects larger than 100 MiB. You can split the files into chunks and initiate a multipart upload from curl. You are responsible for creating the parts to upload. Object Storage just provides the API operations for the remaining steps. Once all the parts are uploaded, a final POST call is required to assemble the file. Let us now see what those steps are :

1. Create a PAR URL on Bucket

Press enter or click to view image in full size
PAR URL

Generated PAR URL:

https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/o/

2. Split the large file into parts

You can split the file in parts using any OS utility. We will use split on Linux to divide the large file large_random_data.csv into 250MB chunks

Become a member

Decide what part number you want to use for each part. Part numbers can range from 1 to 10,000. You do not need to assign contiguous numbers, but Object Storage constructs the object by ordering part numbers in ascending order.

split -b 250M -d large_random_data.csvls -ltrh x*-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x00
-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x01
-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x02
-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x03
-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x04
-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x05
-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x06
-rw-rw-r — . 1 opc opc 250M Aug 2 22:56 x07
-rw-rw-r — . 1 opc opc 50M Aug 2 22:56 x08

3. Create Multipart upload for the file on OCI Object Storage using the par URL

curl -X PUT -H “opc-multipart:true” https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/o/large_random_data.csv

Output

{
“namespace”: “idmldytingzx”,
“bucket”: “DWH-Load”,
“object”: “large_random_data.csv”,
“uploadId”: “7f878479–00e1–4630–23b6–683deac88a78”,
“timeCreated”: “2021–08–03T21:10:59.273Z”,
“storageTier”: “Standard”,
“accessUri”: “/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479–00e1–4630–23b6–683deac88a78/”
}

Use the access URI together with the Object Storage hostname for the target region to upload parts, specifying the part number at the end of the URI. For example, to upload an object in 9 parts, issue the following PUT commands

curl -X PUT — data-binary ‘@x00https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/1curl -X PUT — data-binary ‘@x01https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/2curl -X PUT — data-binary ‘@x02https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/3curl -X PUT — data-binary ‘@x03https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/4curl -X PUT — data-binary ‘@x04https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/5curl -X PUT — data-binary ‘@x05https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/6curl -X PUT — data-binary ‘@x06https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/7curl -X PUT — data-binary ‘@x07https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/8curl -X PUT — data-binary ‘@x08https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/9

4. To commit the multipart upload, use the POST command with the access URI. For example:

curl -X POST https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/

You can delete all parts of an uncommitted or failed multipart upload using the DELETE command with the access URI. For example:

curl -X DELETE https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/u/large_random_data.csv/id/7f878479-00e1-4630-23b6-683deac88a78/

5. To GET list of objects

curl -X get <unique-par-url>curl -X GET https://objectstorage.us-ashburn-1.oraclecloud.com/p/OxZ47fcsRhQRxNqhPJzCpqvw23zqZQGV1L9nnLY-g3FzNgO223qo9mR77K2U1gpE/n/idmldytingzx/b/DWH-Load/o/

Make sure you delete the par URL once the upload is complete or create it with a short validity for security purpose.

Monday, September 8, 2025

ewallet p12 vs cwallet sso

The ewallet.p12 stores credentials and certificates protected by a user password, while cwallet.sso provides an obfuscated, random password for auto-login capabilities, allowing for passwordless wallet access. Both files are often used together in an Oracle auto-login wallet, where ewallet.p12 holds the sensitive data and cwallet.sso enables the wallet to open without requiring the user's password. 
Key Differences
  • ewallet.p12
    • Function: Stores private keys, certificates, and credentials. 
    • Protection: Protected by a user-defined password, which is required to access and modify the wallet. 
    • Use Case: For password-protected wallets where the password is provided during connection or modification. 
  • cwallet.sso
    • Function: Enables "auto-login" functionality, allowing for passwordless access to the wallet. 
    • Protection: Uses an obfuscated, random password that is more secure than a simple user password for auto-login. 
    • Use Case: Bound to the specific host and user where it was created for increased security in auto-login environments. 
Relationship in an Auto-Login Wallet
  • When you create an auto-login wallet using Oracle utilities, both ewallet.p12 and cwallet.sso files are generated. 
  • The ewallet.p12 file contains the essential credentials and certificates, while the cwallet.sso file contains the obfuscated password needed for the auto-login feature to work. 
  • The orapki utility can be used to modify the wallet, but it requires the wallet's original password, which was used to create the ewallet.p12 file. 

In summary: Use ewallet.p12 when you need a password-protected wallet to store your security credentials and certificates, and use cwallet.sso when you need the wallet to open automatically and bypass password prompts on the host it was created on. 

how to export certificate in pem format | SSL / TLS issues.

For TLS implementation in EBS it support PEM format.   Exporting a certificate in  PEM format  depends on your current file type (e.g., .pfx...