Tuesday, September 14, 2010

QR codes

I was amazed by QR codes recently. Its easy way of sharing information visually. This information can be grabbed using barcode scanner(through camera); so just by pointing camera, you grab it.

I am happy that QR codes are used in android very nicely. All application's URL are encoded using QR. it saves effort to remember, type and locate application. All you need is barcode scanner application. QR code generators are available online as well http://zxing.appspot.com/generator/

I see many more usage of this technology in future.

Sunday, August 9, 2009

AIA 2.2.1 installation on Solaris

while installing AIA FP 2.2.1 on Solaris SPARC, we came across following error:
com.oracle.oems.weblogic.AQJMSException: Failed to get Oracle AQ destinations: JMS-232: An invalid user/password was specified for the JMS connection

javax.jms.JMSSecurityException: JMS-232: An invalid user/password was specified for the JMS connection
at oracle.jms.AQjmsDBConnMgr.checkForSecurityException(AQjmsDBConnMgr.java:868)

This is can be resolved with following steps:
1) open file AIA_HOME/Infrastructure/install/wlscripts/FPWLCommonConfig.xml
2) reach to target CreateStartupClasses
3) there are three java tasks for com.oracle.oems.weblogic.AQJMSPasswordUtility
4) in the task for oraesb, password is hardcoded as 'oraesb' in clear text.
5) this should be password of 'ORAESB' database user.
6) change this password value; and restart the installation.

but If you are re-starting installing after failed attempt, you may following steps:
1. login to weblogic console.
2. Delete all the startup classes created as part of previous installation
3. Delete all AIA datasources and connection pools
4. drop AIA schema

Monday, March 3, 2008

properties file in java

Using properties file in java is pretty very common. But the same properties file gives lots of trouble while deployment. java.io.* is bit evil. absolute path makes code OS dependent, while relative path is dependent on JVM. Specially when one is working on app server, thing become much more difficult to trace and debug. i came across this cool coding tip for easy deployment.

/**********************************************************************/
String LOG_PROPERTIES_FILE = "Log4J.properties";
Properties logProperties = new Properties();
InputStream in = null;
ClassLoader loader = Thread.currentThread ().getContextClassLoader ();

try {
if (loader == null) loader = ClassLoader.getSystemClassLoader ();
in = loader.getResourceAsStream ("your/package/"+LOG_PROPERTIES_FILE);
if (in != null){
logProperties.load(in);
}
System.out.println("Loaded properties "+LOG_PROPERTIES_FILE);

} catch (IOException e) {
throw new RuntimeException("Unable to load logging property " +LOG_PROPERTIES_FILE);
}
/**********************************************************************/

instaed of using FileInputStream directly to read file from classpath, I used ClassLoader to get from current JVM's classpath. the properties file exists as part of same package. This resource file is read as InputStream and loaded in properties.