May 30, 2013

ADF UI Performance Guidelines

  1. Remove unnecessary/unused bindings from PageDefs.
  2. Remove unnecessary fields from <>.xml.
  3. Identify and eliminate unnecessary SQLs.
  4. Use short component Ids (less than 6 chars).
  5. Cache Backing bean getters – Do not evaluate Els often.
  6. Use Conditional Activation for Taskflows.
  7. Always call manager APIs and Finders with in a transaction.
  8. Use the "immediate" attribute.
These are some cases where setting immediate to TRUE can lead to better performance.
·         The commandNavigationItem in the navigationPane can use the immediate attribute set to TRUE to avoid processing the data from the current screen while navigating to the new page.
·         If the input component value has to be validated before the other  values, immediate should be set to TRUE. In case of an error it be detected earlier in the cycle and additional processing be avoided.
  1. Use the "visible" and "rendered" attributes.
·         For better performance, consider setting the component to not rendered instead of not visible, assuming there is no client interaction with the component. Making a component not rendered can improve server performance and client response time since the component does not have client side representation.

Performance Considerations for Table and Tree Components

  1. Modify table fetch size
·         Tables have a fetch size which defines the number of rows to be sent to the client in one round-trip. To get the best performance, keep this number low while still allowing enough rows to fulfill the initial table view port. This ensures the best performance while eliminating extra server requests.

  1. Disable column stretching
·         Columns in the table and treeTable components can be stretched so that there is no unused space between the end of the last column and the edge of the table or treeTable component. This feature is turned off by default due to potential performance impacts. Turning this feature on may have a performance impact on the client rendering time, so use caution when enabling this feature with complex tables.

Performance Considerations for autoSuggest

·         autoSuggest is a feature that can be enabled for inputText, inputListOfValues, and inputComboboxListOfValues components. When the user types characters in the input field, the component displays a list of suggested items.
·         This feature performs a query in the database table to filter the results. In order to speed up database processing, a database index should be created on the column for which autosuggest is enabled. This improves the component's response times especially when the database table has a large number of rows.

Data Delivery - Lazy versus Immediate

·         Lazy delivery should be used on pages where content is not immediately visible unless the user scrolls down to it. In this case the time to deliver the visible context to the client be shorter, and the user perceives better performance.
·         Immediate delivery (contentDelivery="immediate") should be used if table data control is fast, or if it returns a small set of data. In these cases the response time be faster than using lazy delivery.

Settings for web.xml

<context-param>
                                <param-name>                org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS
                                <param-value> 3
</context-param>
 <init-param>
    <param-name>jsp_timeout
    <param-value>600
</init-param>
<init-param>
                <param-name>debug_mode
    <param-value>false
</init-param>
<init-param>
    <param-name>load_description_from_tlds
    <param-value>false
</init-param>

<load-on-startup>1

May 15, 2013

SQL script to check the tablespace usage in Oracle Database.

Here is the SQL Script to check the tablespace usage of all the tablespaces in Oracle Database.
It displays in the memory usage in MBs.

SELECT Total.name "Tablespace Name",
nvl(Free_space, 0) "Free Size(MB)",
nvl(total_space-Free_space, 0) "Used Size(MB)",
total_space "Total Size(MB)"
FROM
(select tablespace_name, sum(bytes/1024/1024) free_space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) total_space
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name(+) = Total.name
ORDER BY Total.name;

Source: http://planetofsolutions.blogspot.in/2010/03/how-to-check-tablespace-usage-in-oracle.html

Dec 12, 2012

How to export the MetaData from MDS

Steps to export the MetaData from MDS for an application running on weblogic server. Here we are using WebLogic Scripting Tools to export.

1. Run wlst.sh from $BEAHOME/oracle_common/common/bin/wlst.sh

2. Connect the Weblogic server as mention:
wls:/offline> connect()
Please enter your username :weblogic
Please enter your password :
Please enter your server URL [t3://localhost:7001] :t3://localhost:9113
Connecting to t3://localhost:9113 with userid weblogic ...
Successfully connected to managed Server 'managedServer1' that belongs to domain 'DefaultDomain'

3. To list all the available commands
wls:/DefaultDomain/serverConfig> help('all') or wls:/dev2/serverConfig> help();

4. For get specific command description
wls:/DefaultDomain/serverConfig> help('exportMetadata')

5. The following example exports all metadata files from the application "app1" deployed in the server "server1":
wls:/weblogic/serverConfig> exportMetadata(application='app1', server='server1', toLocation='/tmp/myrepos',docs='/**')
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
Executing operation: exportMetadata.
"exportMetadata" operation completed. Summary of "exportMetadata" operation is:
List of documents successfully transferred:
/mypackage/write.xml
/mypackage/write1.xml
/mypackage/mdssys/cust/user/user1/write1.xml.xml
/mypackage/mdssys/cust/user/user2/write2.xml.xml
/sample1.jspx
5 documents successfully transferred.

Jul 3, 2012

Shell script to rename the files as per requirement.

Shell script to rename .xml files to .properties

for NAME in *.xml;
do
length=${#NAME};
echo ${NAME} ${length};
mv ${NAME} ${NAME:0:${length}-4}.properties
done;

May 24, 2012

Exception:Cannot write XdndAware property, on Create weblogic domain wizard

If you are getting blank screen while creating weblogic domain using weblogic configuration domain wizard due to below exception
./config.sh
Exception in thread "AWT-EventQueue-0" sun.awt.X11.XException: Cannot write XdndAware property
        at sun.awt.X11.XDnDDropTargetProtocol.registerDropTarget(XDnDDropTargetProtocol.java:79)
        at sun.awt.X11.XDropTargetRegistry.registerDropSite(XDropTargetRegistry.java:554)
        at sun.awt.X11.XWindowPeer.addDropTarget(XWindowPeer.java:1633)
        at sun.awt.X11.XComponentPeer.addDropTarget(XComponentPeer.java:1509)
        at java.awt.dnd.DropTarget.addNotify(DropTarget.java:493)
        at java.awt.Component.addNotify(Component.java:6689)
        at java.awt.Container.addNotify(Container.java:2565)
        at javax.swing.JComponent.addNotify(JComponent.java:4685)
        at java.awt.Container.addNotify(Container.java:2576)
        at javax.swing.JComponent.addNotify(JComponent.java:4685)
        at java.awt.Container.addNotify(Container.java:2576)
        at javax.swing.JComponent.addNotify(JComponent.java:4685)
        at java.awt.Container.addImpl(Container.java:1066)
        at java.awt.Container.add(Container.java:925)
        at com.oracle.cie.wizard.GUIContext$8.run(GUIContext.java:480)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
        at java.awt.EventQueue.access$000(EventQueue.java:84)
        at java.awt.EventQueue$1.run(EventQueue.java:607)
        at java.awt.EventQueue$1.run(EventQueue.java:605)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Workaround:-
Add "-DsuppressSwingDropSupport=true" property to JVM_ARGS in $WL_HOME/common/bin/config.sh file and run.

May 21, 2012

Increase the Size of Tablespace

If you want to increase the size of tablespace, its so simple. You can do this by enterprise manager console. Increase the size of datafile for particular tablespace.
OR
For Example
ALTER DATABASE
DATAFILE ‘/u03/oradata/ userdata02. dbf’
RESIZE 200M;

If you don’t have any free space on that partition of disk then you can add another datafile on the other partition  for particular tablespace.
For example
ALTER TABLESPACE app_data
ADD DATAFILE ‘/u01/oradata/ userdata03. dbf’
SIZE 200M;
Now you can insert data with in this tablespace.

Source: http://mhabib.wordpress.com/2007/03/31/increase-the-size-of-tablespace/

May 10, 2012

ORA-12162 TNS:net service name is incorrectly specified

"ORA-12162 TNS:net service name is incorrectly specified" misleads to verify the tnsnames.ora files for listener settings. But it's a issue with ORACLE_SID (environment variable) value.

Action: For windows: Add a environment value 'ORACLE_SID' and assign with your database name 
eg: set ORACLE_SID=orcl

For Linux: Run export ORACLE_SID=orcl or update the same in  ~/.bashrc file for permanent fix.

Note: You must also have ORACLE_HOME variable set to your Oracle database location.