Wednesday, October 26, 2016

SUN ORACLE Flash Acelerator F40 400GB Solid State on PC

I have been lucky to pick 2 of these cards at under $ 120 each on eBay. After initial problems, getting the cards going, and reading up quite a bit, I decided to jot down the information and requirements for using these cards. And in the end, for $ 236, I had 800 GB of pcie SSD available....

Using it in a PC :

In order to use in a normal PC, you need a Standard Long Bracket for LSI Nytro WarpDrive, which is easily replaced with the half height bracket. Keep in mind the new bracket should be attached to the top-side of the card (same side as the disks) in order for the card to align correctly to the pcie slot. Hint: if you only see the disks green LEDs light up, without any status indicators - the LEDs closest to the bracket - then your card is not seated correctly in the pcie slot.

Firmware/Drivers:

To get the latest firmware, BIOS upgrade, you have to use Oracle support, and download Patch 24669037: F40 SW2.0 (PHASE 13.05.10.01 FW) UPDATE.  To apply the patch under Windows (10 included), you have to use the Seagate Nytro Utility Management. Inside the zip file, there is a folder win x86 rel, which contains the Windows ddcli exe tool. Note that you have to use the "Run as administrator" on the Command Prompt to access hardware.

ddcli on Windows 10


I was not able to apply the patch under Linux, or more specific, Oracle Linux 7, with a custom kernel 4.3.7, but was successful with Windows 10, and the firmware in the patch, using the same machine. However the ddcli (Linux version) included in the patch worked as expected.

Other than that, you can use the documentation for the NWD-BLP4-400.

Drivers are available in all modern O/S's.

Performance:

In comparison to OCZ RevoDrive 3, please note, nothing scientific, only for indication. I have a  4x disk Stripe, to get to Apples vs Apples, since the OCZ RevoDrive 3 uses 4 drives in a hardware RAID 0:

F40 Performance


OCZ RevoDrive 3

One complaint, though, the card tend to run quite hot, so adequate cooling/flow is required.

More than 1 card can be attached at a time, and the master (configured in BIOS) will take control of all the other cards. From O/S side, you still see separate controllers. If more than one card is going to be used, make sure that the Firmware/BIOS is on the same revision level.

Disks presented in Windows by 2 cards
Device Drivers


Wednesday, December 2, 2015

Oracle JCS - Peer-to-Peer VPN Tunnel

Please note that OpenVPN is not a supported configuration on JCS/SOACS, so proceed at own risk.

On JCS, all commands running as root :

3. yum installlocal openvpn-2.2.2-1 lzo pkcs11-helper-1.11-3
4. openvpn —genkey —secret /etc/openvpn/vpn.key
5. Configure the /etc/openvpn/server.conf:

remote xx.xx.xx.xx    <— Remote node (In my case router IP with NAT configured to my local host)
float
port 8000
dev tun
ifconfig 192.168.2.1 192.168.2.2   <— Virtual Network, something different than local and remote network
persist-tun
persist-local-ip
comp-lzo
ping 15
secret /etc/openvpn/vpn.key
route 192.168.1.0 255.255.255.0   <— Remote network (ie. what is going to be forwarded through tun device)
chroot /var/empty
user nobody
group nobody
log vpn.log
verb 1

6. service openvpn start


On the target (on premise) , again as root, assuming that OpenVPN is installed (yum install openssl openvpn) 

1. Create the /etc/openvpn/vpn.key  (copy text content of the vpn.key on the JCS Node and paste)
2. Configure /etc/openvpn/server.config:

remote yy.yy.yy.yy  <— JCS public ip
float
port 8000
dev tun
ifconfig 192.168.2.2 192.168.2.1  <— swapped ie 2<->1
persist-tun
persist-local-ip
comp-lzo
ping 15
secret /etc/openvpn/vpn.key
route zz.zz.zz.0 255.255.255.0 <— Remote network ie. JCS local network
#chroot /var/empty/openvpn
user nobody
group nobody
log vpn.log
verb 1

3. service openvpn start


On JCS side open the OpenVPN port 8000 (udp and tcp), using Security Rules and Security Application.

From the JCS node you will only have access to target machine, and other means needs to be implemented to access nodes in same network as the target. OAG and OTD can help with this situation.

For debugging purposes there is a "vpn.log" file created under /etc/openvpn. Also remember that traceroute can give you details about the hops and the route a request is going to follow.

JDeveloper 12.2.1.0.0 MacOSX Exception - sun.lwawt.macosx.LWCToolkit.getImage

If you ran into the following issue in JDeveloper on MacOSX :

java.lang.NullPointerException
  sun.net.util.URLUtil.getConnectPermission(URLUtil.java:84)
  sun.awt.SunToolkit.checkPermissions(SunToolkit.java:921)
  sun.awt.SunToolkit.imageExists(SunToolkit.java:898)
  sun.lwawt.macosx.LWCToolkit.getImage(LWCToolkit.java:555)
  jx.s.ImageIcon.(ImageIcon.java:198)

upgrade your JDK 1.8 to the latest, it was fixed after Update 45.

Wednesday, July 9, 2014

JDeveloper 12c 12.1.3 - Adding Mobile Application Framework (MAF) to SOA/BPM Quick Install

To add the Mobile Framework extension, you will have to install the the following:

1. Mobile Application Framework JDeveloper Patch
2. Mobile Application Framework Extension

Follow the following steps:

1. Download the MAF JDeveloper patch through JDeveloper's Check for Updates
2. Don't restart JDeveloper, rather just close it after the download has completed.
3. Find the folder 12.1.3.0.0 under the users home directory. Under Windows it is under /users/user/AppData/Roaming/jdeveloper, under Unix it is under user home directory/.jdeveloper
4. Delete the 12.1.3.0.0 and the system12.1.3* directories.
5. Start JDeveloper and wait for the patch to be applied.
6. Download the MAF Extension
7. Stop JDeveloper
8. Delete the same directories as in step 4, as well as the tmp directory and any *.txt files in the jdeveloper folder
9. Start JDeveloper
10. It might pop up with a warning that a serious error occured, just ignore and restart JDeveloper to get rid of the error.

To specify the JDeveloper 'system' directory, you can also set an environment variable JDEV_USER_HOME 

Wednesday, April 16, 2014

Hostless Agent in EM12c

If you encounter an agent without any associated 'host' with it, and you did a manual installation of your agent, using '12.1.0.3.0_AgentCore_xxx.zip' file, you probably missed the required plugins. These plugins can be found in the '12.1.0.3.0_PluginsOneoffs_xxx.zip' file. Copy this zip file into the same directory where you extracted the AgentCore zip file, before installing the agent. Both of these archives can be extracted from the command line tool emcli, for example :

emcli get_agentimage -destination=/home/oracle/agent_inst -platform="Microsoft Windows x64 (64-bit)" -version=12.1.0.3.0


Wednesday, December 18, 2013

Oracle BPM quick and dirty SQL Scripts

All these queries are based on the 'soainfra' schema, and requires the CubeCommand to be enabled:

1. Count of assigned (as in open) human tasks by assignees.

select distinct count(*),assignees from wftask wf where state like 'ASSIGNED' group by wf.ASSIGNEES;

2. Activity Performance across the BPM stack:

BPM_ACTIVITY_PERFORMANCE_V -

For example to extract the averages for all activities:

select activity_label "BPM Activity", avg(ACTIVITY_RUNNING_TIME_IN_MSEC) "ms running time" from bpm_activity_performance_v group by activity_label;

3. Process Performance End to End time

BPM_PROCESS_PERFORMANCE_V - Start to End time

4. Count of Active BPM Processes:

select count(*) "Running Processes" from bpm_process_instance_v where sequence_id not in (select sequence_id from bpm_process_performance_v);

Sunday, October 13, 2013

Oracle Case Management Tips

BPM-73420


Error in starting cases.
Error in starting cases.
Contact system administrator for assistance.

....
         at oracle.bpm.casemgmt.persistence.model.CaseStakeHolder.toString(CaseStakeHolder.java:224)
.........


Make sure that all the Stakeholders in the Case Configuration points to a valid  member configuration with a valid member type defined.

Rules going 'haywire'

Remember that any Case Activity can only contain one primitive parameter, or else you are going to break the wiring on the composite level.

Oracle Rules only accept a single primitive type, and multiple complex types (if required).

Thursday, July 18, 2013

Oracle BPM Flex Field Index Creation

Use the output from the following sql script, to create indexes for the WFTASK public and private flex fields. The script looks at the statistics of the WFTASK table to determine the required indexes. Replacing DEV_SOAINFRA, with the schema specified during the RCU creation step.

You can also modify the script to search for may be a bigger number of distinct rows, by changing the number '1' in the script.


set heading off
set echo off
EXEC DBMS_STATS.gather_table_stats('DEV_SOAINFRA','WFTASK');
select 'create index DEV_SOAINFRA.'||column_name||'_idx on DEV_SOAINFRA.'||table_name||' ('||column_name||');' from all_tab_columns where table_name = 'WFTASK'and num_distinct>1 and column_name like '%ATTRIBUTE%';

Output will be in the format:


create index DEV_SOAINFRA.PROTECTEDNUMBERATTRIBUTE1_bpmflex_idx on DEV_SOAINFRA.
WFTASK (PROTECTEDNUMBERATTRIBUTE1);

create index DEV_SOAINFRA.PROTECTEDTEXTATTRIBUTE13_bpmflex_idx on DEV_SOAINFRA.W
FTASK (PROTECTEDTEXTATTRIBUTE13);

Thursday, June 27, 2013

Oracle FMW on 12c Container Database with a Pluggable Database

Oracle FMW 11.1.1.7 (aka PS6) is certified to run on Oracle Database 12c Container with a pluggable database.

To run the rcu (or Repository Creation Utlity) you have to connect to the service of the container created to contain your FMW repository.

For example, I have created a database container called orcl, with a container called pdborcl. If you I run 'lsnrctl status', I get the service orcl.domain.com (root container) as well as pdborcl.domain.com. In my case I would connect to pdborcl.domain.com service.

The other thing to remember is that the 'well known' 'sys' user is a root container based user, and thus you have to grant dba rights to the sys user on the pdborcl container. This is achieved by connect to the service pdborcl as sys and run the command 'grant dba to sys'.


Wednesday, November 21, 2012

64-Bit & OID RCU Issues

If you try to create FMW repository running on 64-bit, and you run into the following error:

oid schema rcu fails ERROR rcu: oracle.sysman.assistants.rcu.backend.action.SQLPlusAction::perform: Error initializing SQLPlusEngine

Set the SQLPLUS_HOME to point to your existing 64-bit Oracle 'sqlplus' installation:

export SQLPLUS_HOME=$ORACLE_HOME

then run RCU.

Tuesday, October 16, 2012

Oracle BPM Suite 11g: Advanced BPM Topics - a must have

I am very honored to review the new book from Mark Nelson and Tanya Williams, Oracle BPM Suite 11g: Advanced BPM Topics, Packt Publishing, 2012. The book is due to be release the 25th October 2012.


The nature of BPM to be cross company, division and with multiple process stake holders brings a new set of dimensions to the definition, design and implementation of BPM. Mark and Tanya set out to address these hurdles, amongst others, in their book.

The book will give you a solid foundation to use Oracle BPM 11g Suite to its fullest capability, to short circuit your understanding of sub-processes, instance correlation, exception, error handling and inter-process communication. With the addition of working with arrays, you will be well equipped to achieve the most advanced BPMN techniques within your Oracle BPM 11g Suite environment within in a couple of days.

The authors explain the concepts and advanced techniques with detailed explanations, diagrams and hands-on exercises to confirm the techniques. The techniques are also enriched with best practice and “gotchas”.

I wish I had the valuable knowledge contained in the book earlier in my career, as it would have saved me a lot of time, reading through technical forums, product documentation and debugging BPMN models, trying to understand correlation and process communication. It also cleared a couple of misconceptions I had.

I would suggest the book to anybody embarking on an Oracle BPM implementation and anybody who wants to enrich their current understanding of BPM with the Advance Topics covered in Oracle BPM Suite 11g: Advanced BPMN Topics.

The book is available at Packt Publishing

Tuesday, August 14, 2012

JDeveloper network issues under JDK1.7

If you run into 'Permission denied' exceptions trying to connecting to Weblogic, and you are using JDeveloper and JDK1.7, add the flag 'AddVMOption -Djava.net.preferIPv4Stack=true' in jdev.conf.

The issue stems from the fact that JDK1.7 implements IPv6, and the prefered method by default for any connection is IPv6.

If you want to set it system wide, export the _JAVA_OPTIONS flag in .bashrc or .bash_profile:

_JAVA_OPTIONS=-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false

Thursday, June 7, 2012

Enterprise Manager Cloud Control 12c

If for some reason during the configuration step, the configuration keeps on failing on the 'MDS Schema Creation' step run the following command, without exiting the Configuration Assistant:

$ORACLE_HOME/sysman/admin/emdrep/bin/RepManager localhost 1521 orcl -action create -dbUser sys

With ORACLE_HOME set to your 'Oracle Middleware'/oms directory.

It will create the repository and when you try the 'Retry' button in the Configuration Assistant, it will pass the MDS Creation step.

If you still run into issues, under the Oracle Middleware home, there is a temporary directory '.gcinstall_temp' created, with a couple of useful log files under '/emprereq/LATEST/', which might give you a hint of what is wrong.

Tuesday, April 3, 2012

Interacting with Nodemanager

Nodemanager is a network daemon, which you can connect to and interact with. The basic functionality can be tested using a connection to Node Manager, using telnet, or in the case of SSL, ssh.

Commands which can be issued to Node Manager includes the starting, stopping and querying the state of servers.

Example:
telnet nodemanagerhost port

domain soa_domain    <- Set the current working domain, as specified in the nodemanager file
+OK Current domain set to 'soa_domain'
server AdminServer   <- Set the current working server AdminServer
+OK Current server is now 'AdminServer'
start AdminServer      <- Issue a start command to AdminServer
+OK Server 'AdminServer' started
getStates                        <- Get status of the servers
+OK AdminServer=RUNNING soa_server1=RUNNING AdminServerTag=UNKNOWN domain_bak=UNKNOWN

Other commands include: kill (server), getLog (last command issues, kill, start), execscript (server migration script)

Complete list of commands:
VERSION

DOMAIN
SERVER
COHERENCESERVER
USER
PASS
STAT
QUIT
START
STARTP
KILL
GETLOG
GETNMLOG
HELLO
CHGCRED
GETSTATES
EXECSCRIPT

Tuesday, March 13, 2012

How to disable RCU requirement testing

I had to install the Oracle SOA/BPM/Webcenter metadata schemas into an unsupported SQL Server environment, and was struggling to bypass the tests in RCU.

To disable the tests, go to the directory where rcu in installed and edit the specific component's xml file:

For example 'SOA Infra' would sit under rcuHome/rcu/integration/soainfra/soainfra.xml, and change the requirements in the file to either a valid test or delete the test, which is expressed between the
<DBPrerequisite></DBPrerequisite> tags.

Difference between Business Transaction Monitoring and Oracle Enterprise Manager

I was tasked to do a demo, based on Oracle Enterprise Manager Grid Control 11g and the SOA Management Pack EE.

The usual question everybody ask at first, is 'What is the difference between OEM GC and BTM ?'.

Firstly, OEM GC is the front-end for all the different components in the Oracle Technology stack, similar to the management consoles you get with the different products (FMW Enterprise Manager, DB Management Console etc), but centralised in one single front-end.

Secondly, the OEM framework is free to use, that is if you don't enable any management packs, which is controlled through configuration, thus enabling you to manage and interact with all your Oracle products through a single instance.

Business Transaction Management, on the other hand is part of the SOA Management Pack EE. At the moment it is a standalone product not integrated with OEM. The product itself was acquired from Amberpoint and as such duplicates some of the functionality of OEM.
BTM breaks down the components into monitored objects, which could be a Java method call, servlet (JSP,ADF etc), Service Bus Service (Proxy and Business), BPEL Process, Web Services, JMS, EJB and others. BTM tries to correlate these objects into a transactional flow where possible and the result is a transactional flow across the components.

A user has the capability to define the relationships, if not already automatically discovered, based on contents of the actual transaction, for example order id in an XML payload of a webservice call, with a BPEL process who interact on the same order id. Another option to correlate different objects is to use the 'fingerprint' option, where a fingerprint is injected into the called object during runtime. This definition is exposed as a transaction.

An example of a transaction might be a user loggin into a customer facing application updating his personal information. A database adapter picks up the change and fires a BPEL process to propogate the change to other systems. In normal circumstances, to track this type of transaction would require a lot of custom logging and correlation of the log entries into a transaction.

BTM captures the information flowing through the different configured objects, and correlate the transactional information into the defined transactions. These transactions can then be investigated/reacted on, on an instance level, either through the front-end, or by implementing policies.

These policies on the objects can define security, service level agreements, logging mechanisms and also alerts or typical fix-it jobs.

So in summary, OEM gives you the overview of the different components and the capability to manage the components, where BTM gives you the capability to follow a transaction (or process) through the technology stack with a breakdown  of each step, across multiple technologies.

UPDATE: In Cloud Control 12c R2, it is now possible to monitor BTM created transactions as part of a Business System. From within Cloud Control it is also possible to drill through to BTM.

Monday, March 12, 2012

BPM Process Spaces 11.1.1.6

Struggling to get Process Spaces installed in the 11.1.1.6 version? The main issue you are facing is the replacement of the Folders_G component in UCM. Ignore the warning to say that the Folders_G component has been superseded by the FolderFramework, and do the configuration on the UCM side as outline and documented for 11.1.1.4/5 using Folders_G.

To prevent the alert from displaying in UCM, open the config.cfg file and set the following configuration value:

DisableFoldersgDeprecationMesssage=1

Friday, March 9, 2012

Active Directory users can not sign into BPM Workspace

Or you get a 'user not authenticated' in the logs, with a valid AD user, create an organization as the administrator and assign all the AD users to it.

A user have to belong to a role, or an organization before access to Workspace is granted to a user.

Also don't forget to add the virtualize true in the security properties to allow SOA/BPM Suite to search across multiple security providers. This configuration can added in the /config/fmwconfig/jps-config.xml

<serviceInstance name="idstore.ldap"
  provider="idstore.ldap.provider">
   ............................
   <property name="virtualize" value="true"/>
   ..............................
</serviceInstance> 

Thursday, December 15, 2011

Cross Domain Security Configuration

Do you want to configure Oracle BI connections, or Process Portal, or access other resources on a different WebLogic domain ? Then you have to enable cross domain security on every domain involved.

To configure cross domain security, in Weblogic Console:

1. Select the domain name
2. Select the security tab
3. Enable 'Cross domain security' and apply
4. Expand the advance options, supply a credential and confirm the credentail.
5. Apply.

Repeat for all the other domains. Restart all the domains and servers.

Also keep in mind, if you don't use LDAP, although highly recommended, then you have to replicate the users to all the domains. For example, if a user 'user1' is trying to access a BI SOAP connection in WebCenter, the same user, in the same security realm, should exist in the BI Domain environment.

Clustered install of WebCenter Process Spaces

Follow the install steps as suggested by George Maggessy - BPM Process Portal Configuration  but with one excpetion, target only a single WebCenter instance and a single SOA instance.

After configuration and successfull install of Process Portal, we need to change a couple of settings to make it cluster aware.

WebCenter Cluster

All the content and required libraries are automatically installed to the WebCenter cluster.

To confirm, have a look at the deployed library oracle.bpm.spaces to see if it is deployed to the 'webcenter' cluster. If not, change all the deployed artifacts on the WebCenter target managed server specified above, to target the 'WebCenter cluster'. (Or remove all the servers from cluster, except for the one specified above, clone server and add it to the 'webcenter' cluster) 

Process Portal SOA Cluster Configuration

Process Portal uses a 'Foreign JNDI Provider' to lookup the BPM/SOA service to interact with. The configuration is done during the installation of the Process Portal.

First of all, go to Domain>Services > Foreign JNDI Providers >BPMRuntimeProvider in the Weblogic Console. Change the target to the 'WebCenter Cluster'.

The next steps is to change the JNDI Provider URL to point to the cluster address of the 'SOA Cluster' by editing the BPMRuntimeProvider in the Weblogic Console.

Remember: If using a two domains, you have to configured cross domain security and if you are using SSL, you have to configure keystores.  See my post on Cross Domain Security