Thursday, April 28, 2011

Handle PermGen and Heap Size in Weblogic/SOA

Efficient garbage-collecting Java Heap is managed in generations - memory segments holding objects of different ages. Garbage collection algorithms in each generation are different. Objects are allocated in a generation for younger objects - the Young Generation, and because of infant mortality most objects die there. When the young generation fills up it causes a Minor Collection. Assuming high infant mortality, minor collections are garbage-collected frequently. Some surviving objects are moved to a Tenured Generation. When the Tenured Generation needs to be collected there is a Major Collection that is often much slower because it involves all live objects. Each generation contains variables of different length of life and different GC policies are applied to them.

There is a third generation too - Permanent Generation. The permanent generation is special because it holds meta-data describing user classes (classes that are not part of the Java language). Examples of such meta-data are objects describing classes and methods and they are stored in the Permanent Generation. Applications with large code-base can quickly fill up this segment of the heap which will cause java.lang.OutOfMemoryError: PermGen no matter how high your -Xmx and how much memory you have on the machine.

To set the Heap Size and Maximum heap size use the following options.

-Xms and -Xmx options set starting heap size and maximum heap size respectively.

Recommended settings
-Xms2048m -Xmx4069m -XX:PermSize=512m -XX:MaxPermSize=1024m

Tuesday, April 26, 2011

Converting a Microsoft p7b Format to PEM Format

Converting a Microsoft p7b Certificate Format to PEM FormatFor Weblogic Keystore

Digital certificates issued by Microsoft are in a format (p7b) that cannot be used by WebLogic Server. The following example converts a digital certificate in p7b (PKCS#7) format to PEM format on Windows XP:
  1. In Windows Explorer, select the file (filename.p7b) you want to convert. Double-click on the file to display a Certificates window.
  2. In the left pane of the Certificates window, expand the file.
  3. Expand the Certificates folder to display a list of certificates.
  4. Select a certificate to convert to PEM format. Right-click on the certificate, then choose All Tasks > Export to display the Certificate Export Wizard.
  5. In the wizard, click Next
  6. Select the Base-64 encoded X.509 (.CER) option. Then click Next. (Base-64 encoded is the PEM format.)
  7. In the File name: field, enter a name for the converted digital certificate; then click Next.

Saturday, April 9, 2011

Setup Oracle SOA B2B for Secured payload (Digitally Signed & Encrypted) using AS2 2.0 protocol


For a large EDI initiative MindTelligent Team was involved in, the assignment was to setup a Oracle B2B exchange for payload using AS 2.0 protocol  This blog discusses the steps to configure Oracle SOA suite 11.1.1.4 B2B server to exchange secured payload (Digitally Signed and Encrypted) using AS2.0 protocol. The post assumes that the user has some prior knowledge of Oracle SOA B2B servers

  • Setup Two WAY SSL on Weblogic 10.3.4 using the link.
  • Ensure that the B2B console can be accessed by using the https://hostname:7002/b2bconsole

  • Document Definition: as2XMLOrder_def 
    • In this example, we are processing a XML using AS  2.0. The option we choose is
      "XML"
    • Identification Expression://*[local-name()='PurchaseOrder']


Setting up "Delivery Channel" for you outbound payloads.

  • Click on Partners-->Channels
  • Select Protocol as AS2-2.0
  • Enter Transport Protocol Parameters
    • URL: http://hostname:port/b2b/httpReceiver
    • User Name: Weblogic user name of remote server
    • Password: Password of the remote server
  • Security Attributes
    •  Ack Signed Checked
    • Message Signed Checked
    • Message Encrypted Signed

















Develop a composite to initiate the process. Ensure that the following assignments are made in the composite

<assign>
            <copy target="$out.property.b2b.fromTradingPartnerId"
                  expression="'AskMind'"/>
            <copy target="$out.property.b2b.toTradingPartnerId"
                  expression="'DST'"/>
            <copy target="$out.property.b2b.documentTypeName"
                  expression="'as2XMLOrderType'"/>
            <copy target="$out.property.b2b.documentProtocolRevision"
                  expression="'as2XML_Version_1.0'"/>
          </assign>

For questions, comments and feedback,  please contact:
 Harvinder Singh Saluja

OCI Knowledge Series: OCI Infrastructure components

  Oracle Cloud Infrastructure (OCI) provides a comprehensive set of infrastructure services that enable you to build and run a wide range of...