Wednesday, October 29, 2014

JCA FTP Adapter limited to 4MB in OSB

Problem:

If you are using the FTPAdapter with OSB 11g (specifically 11.1.1.7), you may experience the following Java exception in the osb_server1.out log file:
####<Oct 29, 2014 3:04:41 AM EDT> <Warning> <JCA_FRAMEWORK_AND_ADAPTER> <soahost1> <osb_server1> <[STUCK] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <0000K^N1fyV8t1RMyYqYMG1JKBeB0000uE> <1413443141803> <BEA-000000> <onReject: The resource adapter 'FTP Adapter' requested handling of a malformed inbound message. However, the following activation property has not been defined: 'rejectedMessageHandlers'. Please define it and redeploy. Will use the default Rejection Directory file://jca/Get/rejectedMessages for now.>

Solution:

The default properties in the JCA FTP Adapter limits files to 4MB when polling for inbound messages.

1. Edit the FTPAdapter and add the following property:
<property name="SupportsScalableDOM" value="false"/>

References:

  • Oracle Document Id: PayloadSizeThreshold not Working for Files Larger than 4MB (Doc ID 1628065.1)


Applicable Versions:
  • Oracle Service Bus (OSB) 11g (11.1.1.7) 

 

Tuesday, October 28, 2014

Oracle OpenWorld 2014 Opening Keynote

The week of Oracle OpenWorld 2014 started out Sunday, September 28th, 2014 in true Oracle fashion. Safra Catz, one of the two newly appointed CEO's of Oracle, who has been with Oracle for 15 years started out the afternoon Keynote by saying that even though he has stepped down as CEO, "Larry Ellison’s vision is more alive today than ever." Then, Catz introduced her friend and fellow industry leader Renee James, and, after the two leading females snagged a quick hug from one another, James took the stage to share her keynote on "The Future of the Data Center in a Software-Defined World."


Renee, President of Intel Corporation, described her excitement of being the "opening act" for Larry Ellison and how this year marks a 20-year partnership between Oracle and Intel. She began her keynote by trying to convey the massive quantities in which data is being used today, and how much data will be being used in the future. She says making sense of all the data is the key to providing meaningful insights into the human condition.


In her keynote, James talked about "Big Bang" of data, private cloud vs. public cloud, the Next Generation firewall, the first Silicon photonics chip, and something called the Nile-o-Meter. She explained that 90% of the data today, was produced in the last 2 years. She described the partnership between Intel and Oracle, and how the two companies are working together to provide value in the areas of private cloud, in many cases exceeding that of the public cloud. Also, she spoke about the future of private and public clouds, saying that it is possible for private clouds to have similar costs to public clouds, and how 47% of workloads are expected to be running in a hybrid mode by 2017. Lastly, she gave the crowd a sneak peak at Intel's new silicon photonics chip, which is able to move data faster than traditional copper over longer distances.

Renee introduced Larry Ellison, donning his new title of Chief Technology Officer and Executive Chairman of the Board at Oracle. Ellison stepped down as CEO in the weeks prior to Oracle OpenWorld 2014. Ellison took the stage and welcomed the OOW 14 attendees. He began the opening keynote by describing 2014 as a turning point for Oracle. He explained that this year, Oracle built a lot of technology for the cloud and gained momentum in the cloud business. Several years ago Oracle realized that they will had no choice but to deliver services at all 3 layers of the cloud. The reason is because of a promise he made to Oracle's customers 30 years ago. A promise that compelled him to deliver Saas, Paas, and Iaas together, and better than the competitor. He explains that Oracle has more applications than anybody, and Oracle's upgrade to platform allows you to move any database to the cloud by pushing a button.


Between swigs from his glass bottle of Coca-Cola, he explained how three decades ago, Oracle customers were wanting to move from minicomputer and mainframe database to the next generation of architecture without re-writing everything. Oracle made a promise to make this easy. Customers expect Oracle to move databases to the next generation without changing a single line of code. Therefore, the big announcement for the day was the "massively" upgraded Oracle Database Platform as a Service. Database is Oracle's largest software business, and Larry confidently declares that database will be by far their largest cloud business. Customers have been waiting for the opportunity to take advantage of lower cost and higher reliability, but they want to move to the cloud gracefully and easily. Oracle allows them to move and modernize. However, Ellison maintained that Oracle is just getting started in the Cloud. Ellison closed the keynote by saying that "there is nothing more important in the modern cloud than securing your data" and delivered another 30 year promise, that discovering and stopping programs with malicious intent is top priority at Oracle.

Sunday, September 21, 2014

Using the Camera In iOS 8 with Swift

There are many examples out there that solidly explain how to use a camera using Objective-C. They can be found here, here, and many other places. The one thing I had not yet seen was how exactly to use it when using the new Swift Language that Apple recently released.

Below is the code that can be used, and there are a two changes to note that have come with the iOS 8 SDK.  The first is UIImagePickerControllerSourceType  where before you would access it by calling UIImagePickerControllerSourceTypeCamera now you call  UIImagePickerControllerSourceType.Camera . The second has more to do with strings different types, CFString vs NSString so to deal with this little issue the following code exists:

let compResult:CFComparisonResult = CFStringCompare(mediaType as NSString!, kUTTypeImageCFStringCompareFlags.CompareCaseInsensitive)
        if ( compResult == CFComparisonResult.CompareEqualTo ) {

Other than that there are the obvious differences between Objective-C and Swift. I hope this helps.

Example Code:

import UIKit
import CoreData
import MobileCoreServices


class CameraVC: UIViewController,UINavigationControllerDelegate,UIImagePickerControllerDelegate {


    @IBOutlet weak var cameraView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        

        // Do any additional setup after loading the view, typically from a nib.
    }
    
    override func viewWillAppear(animated: Bool) {
        
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    // MARK: - Action Methods
    
    @IBAction func takePhoto(sender: AnyObject) {
        if (UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){
            var picker = UIImagePickerController()
            picker.delegate = self
            picker.sourceType = UIImagePickerControllerSourceType.Camera
            var mediaTypes: Array<AnyObject> = [kUTTypeImage]
            picker.mediaTypes = mediaTypes
            picker.allowsEditing = true
            self.presentViewController(picker, animated: true, completion: nil)
            
            
        }
        else{
            NSLog("No Camera.")
        }
    }
    
    // MARK: - Delegate Methods
    
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: NSDictionary!) {
        NSLog("Did Finish Picking")
        let mediaType = info[UIImagePickerControllerMediaType] as String
        var originalImage:UIImage?, editedImage:UIImage?, imageToSave:UIImage?
        
        // Handle a still image capture
        let compResult:CFComparisonResult = CFStringCompare(mediaType as NSString!, kUTTypeImage, CFStringCompareFlags.CompareCaseInsensitive)
        if ( compResult == CFComparisonResult.CompareEqualTo ) {
                
                editedImage = info[UIImagePickerControllerEditedImage] as UIImage?
                originalImage = info[UIImagePickerControllerOriginalImage] as UIImage?
                
                if ( editedImage == nil ) {
                    imageToSave = editedImage
                } else {
                    imageToSave = originalImage
                }
                NSLog("Write To Saved Photos")
                cameraView.image = imageToSave
                cameraView.reloadInputViews()
            
                // Save the new image (original or edited) to the Camera Roll
                UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil)
            
        }

        picker.dismissViewControllerAnimated(true, completion: nil)
        
    }
    
    func imagePickerControllerDidCancel(picker: UIImagePickerController) {
        picker.dismissViewControllerAnimated(true, completion: nil)
    }
    
    

}





Mule: No SQL Strategy found Issue in SQL Server


Problem

I was working on a Mule ESB process, when I came upon an error.

Root Exception stack trace:
java.lang.IllegalArgumentException: No SQL Strategy found for SQL statement: USE XXX_ServiceNow; SELECT LastEventId,LastEventTime FROM dbo.EVENTS_TRACKING;
at com.mulesoft.mule.transport.jdbc.sqlstrategy.EESqlStatementStrategyFactory.create(EESqlStatementStrategyFactory.java:109)
at org.mule.transport.jdbc.JdbcMessageDispatcher.doSend(JdbcMessageDispatcher.java:69)
at org.mule.transport.AbstractMessageDispatcher.process(AbstractMessageDispatcher.java:81)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)


I will admit this was one of the first times I had worked with SQL Server. I typically use everything except it, but I digress. I was attempting a simple query from a table, but getting back "No SQL Strategy..."

Solution

I had seen this error before, and what it means is that there essentially no SQL plan to be executed. In the original state. I was technically performing two operations.
1. Specifying which database to use.
2. Querying the table.
To solve my problem I needed to combine these two statements into a single statement.

The resulting code looked something like this:
SELECT <FieldName1>, <FieldName2>
FROM <DatabaseName>.<SchemaName>.<TableName>


Friday, August 22, 2014

JCA-11622 using the DbAdapter with OSB 11g

Problem:

If you are using the DbAdapter with OSB 11g (specifically 11.1.1.7), you may experience the following Java exception in the osb_server1.out log file:
jca-transport-application-error xmlns="http://www.bea.com/wli/sb/transports/jca" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><jca-transport-error-message>Invoke JCA outbound service failed with application error</jca-transport-error-message><jca-runtime-fault-detail><eis-error-code xsi:nil="true"/><eis-error-message xsi:nil="true"/><exception>com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/CreateOrderProvABCSImpl/WSDL/ShipmentOrder [ Order_ptt::insert(OmOrderCollection) ] - WSIF JCA Execute of operation 'insert' failed due to: Could not create/access the TopLink Session.This session is used to connect to the datastore.Caused by java.lang.NullPointerException.; nested exception is:BINDING.JCA-11622Could not create/access the TopLink Session.This session is used to connect to the datastore.Caused by java.lang.NullPointerException.You may need to configure the connection settings in the deployment descriptor (i.e. DbAdapter.rar#META-INF/weblogic-ra.xml) and restart the server. This exception is considered not retriable, likely due to a modelling mistake.at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invokeOneWay(JCATransportOutboundOperationBindingServiceImpl.java:114)at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendOneWay(JCATransportEndpoint.java:191)

Solution:

Even though the references in the OSB project were correct, the references in the actual .JCA file were not. I’m not sure why the original developer had incorrect references in the actual .JCA file, but OSB 11.1.1.4 was more tolerant and did not seem to care. OSB 11.1.1.7 does care.

1. Ensure that the highlighted references below are valid and correct in your .JCA file:
<?xml version="1.0" encoding="UTF-8"?><con:jcaEntry xmlns:con="http://www.bea.com/wli/sb/resources/config">    WRONG: <con:jca><![CDATA[<adapter-config name="Order" adapter="Database Adapter" wsdlLocation="Order.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    RIGHT: <con:jca><![CDATA[<adapter-config name="Order" adapter="Database Adapter" wsdlLocation="ShipmentOrder.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">

  <connection-factory location="eis/DB/EBS" UIConnectionName="InstanceDetails" adapterRef=""/>  <endpoint-interaction portType="Order_ptt" operation="insert">    <interaction-spec className="oracle.tip.adapter.db.DBWriteInteractionSpec">      <property name="DescriptorName" value="Order.OmOrder"/>      <property name="DmlType" value="insert"/>      WRONG: <property name="MappingsMetaDataURL" value="Order-or-mappings.xml"/>
      RIGHT: <property name="MappingsMetaDataURL" value="ShipOrderToplink.xml"/>
      <property name="DetectOmissions" value="true"/>      <property name="GetActiveUnitOfWork" value="false"/>    </interaction-spec>  </endpoint-interaction> </adapter-config>]]></con:jca>    <con:jcaDependency>        WRONG: <con:wsdlRef wsdlLocation="ShipOrder.wsdl" ref="OrderConfirmProvABCSImpl/WSDL/ShipmentOrder"/>
        RIGHT: <con:wsdlRef wsdlLocation="ShipmentOrder.wsdl" ref="OrderConfirmProvABCSImpl/WSDL/ShipmentOrder"/>
        WRONG: <con:toplinkRef toplinkFile="ShipOrder-or-mappings.xml" ref="OrderConfirmProvABCSImpl/Toplink/ShipOrderToplink"/>
        RIGHT: <con:toplinkRef toplinkFile="ShipOrderToplink.xml" ref="OrderConfirmProvABCSImpl/Toplink/ShipOrderToplink"/>
    </con:jcaDependency></con:jcaEntry>


Applicable Versions:

  • Oracle Service Bus (OSB) 11g (11.1.1.7) 

 

Sunday, August 10, 2014

"java.lang.OutOfMemoryError: PermGen space" when starting SOA Suite 11g with Java 7

Problem:

When starting up SOA Suite 11g running Java 7, you may experience multiple errors in the .out file:
<Aug 9, 2014 9:26:32 PM EDT> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.OutOfMemoryError: PermGen space
Exception in thread "Timer-1"Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Timer-1"Exception in thread "[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'"Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'"Exception in thread "[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'"Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'"

<Aug 9, 2014 10:18:10 PM EDT> <Error> <HTTP> <BEA-101216> <Servlet: "CoordinatorPortTypeServlethttp" failed to preload on startup in Web application: "wls-wsat.war".java.lang.OutOfMemoryError: PermGen space        at java.lang.ClassLoader.defineClass1(Native Method)        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)        Truncated. see log file for complete stacktrace>

Solution:

The PermGen needs to be increased if you are running SOA Suite 11g on Java 7 (e.g., java.runtime.version = 1.7.0_60-b19).

1. Log in to the WebLogic Server Administration Console

2. Navigate to "Server > soa_server1 > Configuration > Server Start"

3. Under the 'Arguments' field, add the following:
-XX:PermSize=1024M -XX:MaxPermSize=1024M
4. Save, apply changes, and restart the SOA server.


Applicable Versions:

  • Oracle WebLogic Server 11g (10.3.x)
  • Oracle SOA Suite 11g (11.1.1.x)
  • Java 7 (1.7.x)


References:




Thursday, July 24, 2014

Limit number of retained log files in WebLogic Server 11g

There are numerous log files in Oracle WebLogic Server 11g and ideally what you would want to do is ensure that the number of rotated log files are controlled. For example, you may have already taken the steps to rotate the log files as they grow to a certain size. This is a great first step, but what you also want to do is control how many of those rotated files you wish to retain, otherwise your file system will likely get filled up over time if you don't manually delete them.

1. Log in to the WebLogic Server Administration Console

2. Repeat the instructions below for all managed servers

3. Navigate to "Server > (managed server) > Logging > General"

4. Set the following values:
Limit number of retained files: Enabled
Files to retain: 30

Minimum severity to log: Warning

Severity Level (Log File): Warning

Severity Level (Standard Out): Error

Severity Level (Domain Log Broadcaster): Error

Severity Level (Memory Buffer): Error
5. Navigate to "Server > (managed server) > Logging > HTTP"

6. Set the following values:
Limit number of retained files: Enabled
Files to retain: 30
7. Navigate to "Server > (managed server) > Logging > Data Source" (new in option in current releases)

8. Set the following values:
Limit number of retained files: Enabled
Files to retain: 30
9. For domain level logging properties, navigate to "soa_domain > Configuration > Logging"

10. Set the following values:
Limit number of retained files: Enabled
Files to retain: 30

Applicable Versions:
  • Oracle WebLogic Server 11g (10.3.x)


Friday, June 20, 2014

BEA-387026 encountered after upgrading to OSB 11g (11.1.1.7)

Problem:

When you have an OWSM policy attached to an OSB 11g proxy service, this typically works fine. But after upgrading to OSB 11g PS6 (11.1.1.7), you may experience the following error in the logs:
<Jun 19, 2014 6:34:21 PM EDT> <Error> <OSB Security> <BEA-387026> <An internal web service security error occurred [error-code: InternalError, message-id: 5630667683963361529-6593aaf0.146aae8a55c.-4741, proxy: SalesOrder/ProxyService/SalesOrder, target: null, operation: null]--- Error message:nulljava.lang.NoSuchMethodError: com/bea/wli/sb/security/wss/WssInboundContext.setRequestMessage(Ljavax/xml/soap/SOAPMessage;Ljava/lang/Class;Ljavax/xml/soap/MessageFactory;)V        at com.bea.wli.sb.security.wss.wsm.WsmInboundHandler.processRequest(WsmInboundHandler.java:181)        at com.bea.wli.sb.security.wss.WssHandlerImpl.doInboundRequest(WssHandlerImpl.java:228)        at com.bea.wli.sb.context.BindingLayerImpl.addRequest(BindingLayerImpl.java:291)

Solution:

1. Log in to the WebLogic Server Administration Console

2. Untarget "OWSM Policy Support in OSB Initializer Aplication" from the osb_cluster and AdminServer

3. Shutdown osb_server1, osb_server2, and AdminServer

4. Run these commands on the first node of your cluster (modify directories accordingly):
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server1/tmp 
rm -rf * 
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server1/cache 
rm -rf *
5. Run these commands on the second node of your cluster (modify directories accordingly):
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server2/tmp 
rm -rf * 
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server2/cache 
rm -rf *
6. Startup Admin_Server, osb_server1, osb_server2

7. Target "OWSM Policy Support in OSB Initializer Aplication" from osb_cluster and AdminServer

8. Shutdown osb_server1, osb_server2, and AdminServer

9. Run these commands again on the first node of your cluster (modify directories accordingly):
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server1/tmp 
rm -rf * 
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server1/cache 
rm -rf *
10. Run these commands again on the second node of your cluster (modify directories accordingly):
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server2/tmp 
rm -rf * 
cd /u01/app/oracle/middleware/user_projects/domains/osb_domain/servers/osb_server2/cache 
rm -rf *
11. Startup Admin_Server, osb_server1, osb_server2


Applicable Versions:

  • Oracle Service Bus (OSB) 11g (11.1.1.7)


References:




Thursday, June 19, 2014

Unable to retrieve composite detail in EM Fusion Middleware Control

Problem:

When logging in to the Oracle Enterprise Manager 11g Fusion Middleware Control console to view the details of the SOA composite, you might receive the following error when you click on the composite:
Unable to retrieve composite detail.
The composite X is not available. This could happen because either the composite has been undeployed or soa-infra has not yet loaded this composite.

The soa_server1.out log file will show this error:
<Jun 19, 2014 12:00:23 PM EDT> <Error> <Default> <J2EE JMX-46336> <MBean operation access denied.
  MBean: oracle.soa.config:name=soa-infra,j2eeType=CompositeLifecycleConfig,Application=soa-infra
  Operation: getDefaultComposite(java.lang.String)
 
Detail: Access denied. Required roles: Admin, Operator, Monitor, executing subject: principals=[]
java.lang.SecurityException: Access denied. Required roles: Admin, Operator, Monitor, executing subject: principals=[]
        at oracle.as.jmx.framework.wls.spi.security.WLSMBeanSecurityHelper.isInWlsGlobalSecurityRoles(WLSMBeanSecurityHelper.java:245)
Resolution:

Even though the stack trace above claims otherwise, in Oracle SOA Suite 11g (11.1.1.7), you must grant the user 'Administrators' role to the user. Could be a bug.


Applicable Versions:

  • Oracle SOA Suite 11g (11.1.1.7.0)

Monday, May 26, 2014

Adam Savage at Collaborate 14

Adam Savage, best known as the co-host of "MythBusters" on the Discovery Channel, appeared at Collaborate 14 in Las Vegas as one of the Keynote Speakers on Tuesday, April 9th. Adam is also a longtime special-effects artist, fabricator, model maker and general dreamer-upper who has worked on films such as Galaxy Quest and the Matrix sequels as well as Episodes I and II of the Star Wars series.



In his presentation, he spoke mainly on the fundamental ideas many people have about both art and science, how the two subjects are similar and why the two have been twin propellers pushing us forward as a species. Adam believes that art and science are more alike than people originally perceive, that both subjects are expressed in ways which are unique and thought provoking, and they are both a reflection of our progress as a species. He compares the two, saying there are high and low points with each, and somewhere in the middle is where we usually place ourselves. Adam stressed that nothing is too obscure or beyond our understanding. Art and science are very much a part of who we are as people and a society, and continued knowledge of both is the only way we can actively improve our way of life. Adam explained how art is a direct response to what happens in the science world, and that they work hand in hand for us to explain who we are and what we are doing, and the more self generating ideas you come up with the more you can come up with. He encouraged the audience to pay attention to patterns, participate and question everything. 

Closing his hour, he answered questions in length about his time on "Mythbusters" and the relationship he has with the co-star Jamie Hyneman. He explains that their differences help their scientific process by pushing their ideas forward until they have covered every angle and every possible outcome. "Mythbusters" is the perfect example of how working as a team helps to develop the best practices and outcomes. He warns that science is still unpredictable, and it is difficult to eliminate every variable in every situation. He describes the approach he has to science, looking at it from different perspectives until it makes sense in his own head, a practice he learned from watching his father paint. This process helps him respect the importance of working as a team and collaborating together.



Saturday, May 17, 2014

Considering speaking at UKOUG Tech 14? Why I travel overseas to attend UKOUG every year

I have been traveling to attend the UKOUG Tech Conference every year for the past 3 years. Not only is this at my own expense, there is lost income and time away from family to travel internationally from the United States to attend the event.


Why do I do it? It's simple.
  • Presentations are top-notch. Less sales-centric and more technology focused. Much preferred over Oracle OpenWorld.
  • I try to present as much as I can. I love sharing my experiences with others and the registration fee is waived by being a presenter.
  • Individual one-on-one time with Oracle Product Managers/Directors who fly in from the United States, whom I never would have been able to spend time with at Oracle OpenWorld because of the craziness there.
  • Being in December, just a few short months after Oracle OpenWorld, you get to attend many of those presentations.

I am going again this year and submitted 2 abstracts (and hope they are accepted!). Contrary to popular belief, you don't need to be an expert or a seasoned presenter. Simply talk about a single use case, a performance tuning tip you ran into, high level design your team came up with, anything... and in any Oracle technology area.

It's fun. You'll learn. And you'll be surprised at the number of people sharing your experiences and wanting to know more. If you attend, hit me up on LinkedIn and let's meet.


Submit an abstract. Go for free. Learn & network.



 

Monday, April 21, 2014

COLLABORATE14: A week in review

The week of COLLABORATE organized by some of the most dedicated people was filled with many presentations of varying quality. The event took place at the Venetian Palazzo and Sands Expo Center in Las Vegas, Nevada. While there are many uncountable events, people, presentations, and slot machines I am going to just highlight a few of my experiences on my first trip to Las Vegas.

RAC ATTACK!
My first and probably favorite of all the presentations was "RAC Attack!" Provided by the group at racattack.org this session was a hands-on interactive help session for learning how to setup a two node RAC database. As a disclaimer I don't profess or market myself as a DBA, but I do like to have some what of an understanding of the systems that I use even if my useage of them only touches the surface. Setting up this cluster provided a good insight of what DBAs work with on a daily basis. The group provided much help where ever it was needed, but the instructions they had laid out in the first place were very descriptive and helpful. They tried to have us emulate the setup as if we wouldn't have direct access, which is typical in most settings. Often times a Unix/Linux administrator will have done a lot of the beginning work and have approved programs install, appropriate ports opened, and necessary sudoers access provided. In lieu of needing to emulate the Linux Admin role in addition to the DBA role all security was uprooted: firewall disabled and selinux disabled. The group incentivized people to get engaged by awarding attendees with T-Shirts and at the end providing those who had made it the furthest with prizes. Overall I would call it a rewarding experience, this helped me understand what my colleagues in the DBA role deal with on a daily basis as well as provided a good insight into some of the workings of the Oracle Database product.

More updates may appear here as time progresses.



Tuesday, April 15, 2014

My failed Google Glass experience

At the Collaborate 14 conference, @hdost lent me his Google Glass to try out for a bit.

AHMED: Okay Glass. Call John Doe. (I tried someone I knew was in his address book.)

GOOGLE GLASS: (Nothing happened.)

AHMED: (I see a menu that is now giving me options of what to say.)

AHMED: Okay Glass. Make a call.

AHMED: Hey Harold, it says "Mom" here in the dropdown.

GOOGLE GLASS: (Starts dialing Mom.)

AHMED: Cancel!

AHMED: Google Glass cancel!

AHMED: Okay Glass, cancel call!!!

Fortunately, Harold quickly ended the call from his phone. It would appear I need a little more practice before trying it out in the real world!

I thought I was cool until I accidentally started dialing Harold's mom


Monday, April 14, 2014

Harold Dost III now an Oracle ACE Associate

Harold Dost III, Senior Consultant at Raastech, is now an Oracle ACE Associate!


Becoming a member of the Oracle ACE Program highlights an individual's excellence and technical proficiency. Harold joins an elite group of about 460 individuals, including Raastech's Ahmed Aboulnaga (Oracle ACE), to be recognized as Oracle enthusiasts and advocates. Harold's impressive credentials, 6+ years of experience working in the Oracle community, and enthusiasm to contribute on higher levels are qualities that validate his merit in becoming an Oracle ACE Associate. Congratulations Harold!

Anyone in the Oracle Technology and Applications communities is eligible to apply for consideration, or nominate someone, for one of the following tiers: Oracle ACE Associate, Oracle ACE, or Oracle ACE Director.

Harold can be found on Twitter at @hdost.


Oracle ACE Program:
http://www.oracle.com/technetwork/community/oracle-ace/index.html


"Crazy or Courageous?": Impressive C-level presentation on the importance of branding and selling a project

Last week, while attending Collaborate 14 in Las Vegas, one of the sessions I attended was Crazy or Courageous? Lessons Learned From Making it Happen by Patrick Ott from Amway. Patrick shared his experience during the first global implementation of Oracle E-Business Suite at Amway across 31 European markets. This was a C-level presentation, targeting managers and especially managers outside of IT.

Patrick Ott, Operations Directory, Amway

* Disclaimer though. Raastech, the company I work for, currently supports Amway in a consulting capacity, and I have personally met Patrick in passing several times over the course of the project but have not directly worked with him.

Patrick talked about the challenges of selling the Oracle E-Business Suite solution to company executives, employees, and their customers. The job was made more challenging after what was considered an unsuccessful rollout of a similar solution several years earlier.

Here are a few personal takeaways from the presentation.

Selling to Upper Management

To get their attention, you have to convince the executives and the board that they're either sitting on a gold mine... or about to fall off a cliff.

The Spinning Plates Example

The project management team sometimes felt like the guy trying to keep the spinning plates balanced, always jumping back and forth making sure when things appear that they're about to collapse, bringing them back on track.



A Single Dashboard Slide

Project statuses to the executives were kept under 5 slides. The main project dashboard slide was in fact one page, depicted very simply and in easy to understand graphs, at the expense of detail obviously. By doing so, it allowed management to drill deeper into each of the status areas by asking questions. This level of interactivity could not have been achieved going through a 50 slide project update.

Branding a Project

How can you get everyone to feel passionate and proud about their involvement in a project? The same way people pay ridiculous amounts for Starbucks coffee instead of the generic brand. It's partly about branding. It was not the rebranding of the "ATLAS" project, as it's called, that made the project successful, but it was one of the aspects of convincing the executives, board, employees, and customers that things this time were different... which they were.

Old Logo
New Logo

Overall, it was a very good presentation by a very competent presenter who clearly understands the challenges it takes to make the rollout of a global enterprise project successful. His examples were impressive and completely relatable, highlighting how project success is not always about technology, but about people as well.


Sunday, April 13, 2014

Two minor problems with Collaborate 14


Note: I paid full price to attend Collaborate 14 and it was absolutely worth the cost of admission.

It was an excellent conference, excellent venue, much improved presentations, and overall an extremely well organized conference. I highly recommend it, and most definitely recommend it over Oracle OpenWorld.

With that being said, I highlight below the two biggest problems I personally found with the conference.

Problem #1: Limited exhibition booth time

Collaborate 14 is a 5 day conference, from April 7 to April 11. The exhibition hall was only open for 2 days, and for a period of 4 hours each day, from 10:45am to 3:15pm. The exhibitors lose an hour dedicated to lunch, so there's essentially only 6 hours to roam the vendor booths. That's 6 hours total for a 5 day conference!

Bad planning? Intentional? Either way it doesn't matter. Personally I was disappointed and the vendors I talked to weren't too happy either. I would have liked to spend more time socializing and engaging with the vendors, as well as spend more time at the Oracle stands.

Ahmed roaming the exhibition halls, happy at something, though he's not sure what exactly.

Problem #2: Late publishing of agenda causes presenter planning challenges

Many presenters were unsure what day they were presenting, so they were unsure when to book their travel, opting to stay for the entire 5 days, not by choice. Now granted as an organizer I would love/encourage/plead with presenters to stick around for the entire conference, it's unfair to some of them who may have other commitments. Give them the choice I say.


Don't read too much into these criticisms. I merely raise them to highlight areas of improvement and they reflect my opinion alone (although a lot of people I met agreed or shared similar concerns). This was an excellent conference and I will surely be back next year. I had a blast, I learned a lot, and I met some old and new colleagues. Hats off to the IOUG, OAUG, and Quest for once again organizing a great conference.

Saturday, April 12, 2014

4 under-recognized presentations at Collaborate 14

I attended many, many sessions last week at Collaborate 14. Big data. OEM Grid Control. Cloud. SOA. Engineered systems. Many were great. Few were disappointing. Attendance among the presentations were mixed. Some were a full house while others had only a few in attendance.

In today's blog post, I highlight four presentations in particular which were extremely impressive but lacked the turnout that they deserved.

Some presentations were early in the morning; clearly a major disadvantage for a conference taking place in Las Vegas. Others were later in the afternoon, a time when people were just getting ready to enjoy the evening and great weather. Some of the presentation titles could have definitely been made to be more attractive (judge for yourself below). And in one case, the name of the well known presenter was not in the agenda on the mobile app. Marketing also has something to do with it, and perhaps the presenters spreading the word a bit in advance might have helped.

These four presentations were all standout presentations, and I give each of them a 10 out of 10. Let me explain why.


An Alternative to Exadata for Large Scale ERP Deployments
Cliff Burgess, Director of Information Technology, Gentex Corporation

Cliff talks about their experience at Gentex and why they upgraded the commodity hardware running Oracle E-Business Suite R12 instead of moving to Exadata. Typically you don't find too many anti-Exadata presentations out there, so it was refreshing to see a different perspective.

What I learned:
  • Exadata is not just hardware, it's also software so don't forget about the ongoing support cost.
  • Who administers Exadata? The Oracle DBA? System administrator? Network admin? Storage admin? Training is clearly an issue.
  • Though Oracle sells Exadata as a means to stop finger pointing among the various administrators, this clearly was not a factor for Gentex.
  • On their commodity hardware, Gentex increased their CPUs by 50% but their RAM by 1000%. This was clearly to get as much power as possible while controlling Oracle licensing costs, which is licensed by the core.
  • To minimize licensing cost, Gentex went with the highest end CPUs at the time.
  • Given enough time and effort, you may be able to prove that Exadata performance gains may not be drastically better than commodity hardware for OLTP based transactions, something that Gentex confirmed themselves through an extensive POC.
It was a great presentation with some good insight on how Gentex saved $2 million by not moving to Exadata yet were able to resolve their performance issues with their E-Business Suite R12 environment.


Fusion Middleware-Heart of Fusion Applications, Tips and Tricks to Maintain, Install a Successful Fusion Application Install Base
Manoj Machiwal, Consulting Director, Jade Global

Manoj talks about what it takes to install Oracle Fusion Applications, an extremely new topic area. I'll be honest with you. I didn't have high hopes for this presentation, but as the presentation progressed, I realized that this one was a hidden gem.

What I learned:
  • Fusion Apps requires a lot of the Fusion Middleware infrastructure, such as the application server, identity management, and integration products.
  • Other Fusion Middleware products such as OBIEE and WebCenter Portal are optional.
  • Users are now stored in an external directory (i.e., the concept of FND_USERS no longer exists).
  • The Fusion Apps Vision instance requires 8 CPUs, 220 GB of memory, and 2 TB of disk!

Well done Manoj. Sorry I had to leave the presentation a little early, but what I saw was impressive.


Real-World Cloud & On-premise ERP Integration Simplified with Oracle SOA Suite
Vikas Anand, Senior Product Director, Oracle

Vikas talks about cloud integration and walks through a demo of a two-way integration between Salesforce.com and E-Business Suite using the new Salesforce Adapter. I attended this presentation at the last Oracle OpenWorld conference, but this one had a few new interesting twists. If you're interested in knowing why I think highly of this presentation, see my review of that OpenWorld presentation.

What's new that I learned this time around:
  • Session managed to the external service provides (e.g., Salesforce.com) is fully managed by the adapter (i.e., the SalesForce Adapter).
  • The adapter supports the ability to provide a response interface for Salesforce events to invoke.
  • The BMC Software use case, on how their CIO gave a directive to move the majority of their services to the cloud, was interesting (and scary!).


I know it doesn't seem like much, but remember, the majority of the content was similar to what was presented last October at OpenWorld, so check out my last review to find out more.


Human Task and ADF: How-to
Harold Dost III, Senior Consultant, Raastech

Harold presents a live demo creating an ADF based form to handle Human Tasks in Oracle SOA Suite 11g. Unfortunately, both the presentation and the abstract should have had some reference to Oracle SOA Suite 11g, as Human Task is one of the many components of this suite.

What I learned:
  • You do not have to rely on the awful BPM Worklist to be the UI that users navigate to manage workflow actions.
  • The ADF custom developed workflow management forms can be hosted externally or embedded within the BPM Worklist.
  • Seeing a live (working) demo and walkthrough is always welcome and enhances the understanding.


This is a presentation that's mostly geared towards Oracle SOA Suite developers or those who rely on Human Task for workflow purposes. Since it's an area I specialize in, it is of particular interest to me.


There you have it. Four under-recognized yet excellent presentations at Collaborate 14, and ones that I'm extremely glad I attended.


Thursday, April 10, 2014

Ahmed Aboulnaga interviewed in Oracle Magazine

Ahmed Aboulnaga, Technical Director at Raastech, appeared in the March/April issue of Oracle’s flagship magazine. With a subscribership of around 550,000, Oracle Magazine provides unique viewpoints on business and technology. The Peer-to-Peer article, on page 27, by Blair Campbell titled "All for One", features Ahmed (Oracle ACE) alongside Lakshmi Sampath (Oracle ACE) from Dell and  Bjoern Rost (Oracle ACE Director) from Portrix Systems and highlights the different ways groups can motivate and inspire.

Ahmed, having 18 years experience working with Oracle products, discusses why whiteboards are his favorite tool for fostering teamwork and collaboration, where he would like to see Oracle go in the future, and more. Below is a link to the current issue.
Link to current issue:

To subscribe to Oracle Magazine:

Link to digital edition (subscription required):

Tuesday, March 25, 2014

Upgrading to Oracle SOA Suite 11g PS6 (11.1.1.7)? Do this.

Do you need to make any code changes after applying the Oracle SOA Suite 11g PS6 (11.1.1.7) patchset?

Yes, this upgrade requires a few code modifications. So search for the following terms in your code to see if you are affected:
  • setProperty
  • out.header.wsse_Security

Issue 1: setProperty function requires strings now

If you are using the setProperty function, you need to force the variable to be a string.

After the 11.1.1.7 patchset, this no longer works:
select='mhdr:setProperty("out.property.replyToAddress",$ReplyToAddress)'
Instead, force the variable into a string, in this example $ReplyToAddress:
select='mhdr:setProperty("out.property.replyToAddress",string($ReplyToAddress))'/>

Issue 2: Using out.header in an XSL transform may not work

After the 11.1.1.7 patchset, you can no longer set the outbound security header in an XSL transformation as follows:
select="mhdr:setProperty('out.header.wsse_Security/wsse:Security/wsse:UsernameToken/wsse:Username', $Username)"/>

Move the logic into the Mediator .mplan file instead:
<assign> 
  <copy target="$out.property.endpointURI" value="$in.property.endpointURI"/> 
  <copy target="$out.header.a_ReplyTo/a:ReplyTo/a:Address" value="$in.property.wsa.replyToAddress"/> 
  <copy target="$out.property.replyToAddress" value="$in.property.wsa.replyToAddress"/> 
</assign>

Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.7)

Monday, February 24, 2014

ORAMED-01201 after upgrading to Oracle SOA Suite 11g PS6

Problem:

We received this XSL/DVM error when we upgraded to Oracle SOA Suite 11g PS6 (11.1.1.7):
ORAMED-01201:[Error in transform operation]Error occurred while transforming payload using "xsl/QueryCustomer_To_CustomerTransaction.xsl" for target part "payload".Possible Fix:Review the XSL or source payload. Either the XSL defined does not match with the payload or payload is invalid. Cause:XML-22044: (Error) Extension function error: Error invoking 'lookupValue':'oracle.tip.dvm.exception.DVMValidationException: The DVM Document is invalid Please fix the DVM Document and ensure the document confirms to the xsd'

Analysis:

It turns out that a developer did a global search-and-replace, changing "http" to "https" in order to update multiple URLs in a DVM. He did not realize that this also changed the protocol in the namespace URL, which was obviously an error on his part.

However, this ORAMED-01201 error never showed up with previous versions of Oracle SOA Suite 11g, and only started up after we upgraded to 11.1.1.7. So it seems that previous versions of Oracle SOA Suite 11g were tolerant of namespace errors, but not the latest PS6 patchset. This is a good thing actually.

The namespace was accidentally changed to "https". This worked in 11.1.1.4 but not 11.1.1.7:
<?xml version='1.0'?><dvm name="Customer" xmlns="https://xmlns.oracle.com/...
Finally corrected it after upgrading to 11.1.1.7:
<?xml version='1.0'?><dvm name="Customer" xmlns="http://xmlns.oracle.com/...

Resolution:

1. Double-check your namespace in the DVM.


Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.7)


Wednesday, January 8, 2014

ATLRUG Presentation: Solr and Sunspot

Tonight I presented at the Atlanta Ruby User's Group more affectionately known as ATLRUG. I have been attending for a while, and I finally took the initiative to make a presentation. The presentation itself was about using the Solr server with the Sunspot gem.  I would like to thank everyone who was there, and for all the positive feedback. For anyone looking for a copy of the slides, here they are.


Monday, December 23, 2013

Recap of Raastech's Fusion Middleware and Cloud Presentations @ MOUS

On November 13, 2013, Raastech gave two different presentations at the 6th Annual MOUS Conference at Schoolcraft College in Livonia, MI. The Michigan Oracle Users Summit (MOUS) conducts annual conferences with approximately 300+ attendees and is a representation of four regional user groups; MI-OAUG, SEMOP, BTU, and Hyperion.


Best Practices for Infrastructure Tuning of Oracle Fusion Middleware Components

Arun Reddy, Technical Director at Raastech, explained the common infrastructure best practices for Installations, Patching, Administration, Deployments, and Security.

During the presentation he offered information about planning your environment based on key business factors, implementing the best practices, automating tasks, securing environments, and the need for a backup and recovery plan.

His presentation can be downloaded here.



Cloud Concepts - Everything you Wanted to Know but Were Afraid to Ask

Ahmed Aboulnaga, Technical Director at Raastech, and Javier Mendez, Principal Consultant at Raastech, teamed up during their professed "introductory" presentation on Cloud Concepts.

Ahmed began by describing the confusion and hype associated with Cloud Computing. He also explained how virtualization laid the foundation for the cloud, and the difference between the two. Javier explained the purpose and consumers of Cloud services. He discussed the differences in various service and deployment models.

The presentation offered a great assessment of the pros and cons of cloud concepts.

 Their presentation can be downloaded here.