martedì 31 luglio 2012

Oracle UCM: Dashboard

Dashboard is an Oracle WebCenter Content feature that allow to display useful data in simple portlets that are displayed to users. Dashboards can be set as WebCenter Content users homepage, this means that when a user access UCM after login page instead of the generic search form will be redirected to these dashboards.

Dashboards are fully customizable by admins and by users and they are basically folio templates containing one or more items. Any of these item composing a Dashboard is an idoc page which performs some action like search for specific content, displays active workflows, etc.

To enable Dashboard you need to enable ContentFolios component. To enable it login to UCM, go to Administration -> Admin Server -> advanced component manager -> CHECK all Category Filters -> under Disabled Components select ContentFolios and click Enable button.

Restart UCM service, then go to Administration -> Configure Record Settings -> under Records Management Install Settings select Standalone and under Installation Levels choose at least Minimal. Minimal enables some new features, including Dashboards. If you have more specific needs you should consider a deeper level. Clicking to "info" icon near each level gives you infos about features enabled by each installation level.

After selection you will need to restart UCM service.

After service restart when logged in you will be prompted by following screen

Under Define Defaults click every item and choose default metadata that will be associated to every Audit Entries.

Do the same for Screenings Reports

Then CHECK all items and click Submit button to proceed.

Click Records -> Dashboards then you can go to User Dashaboard, Admin Dashboard or Create a new Dashboard.

By enabling Dashboards some new filea have been uloaded to your Content Server, if you perform a search you will find some new files and two Folios with following ID:

which are admin and users Dashboards respectively. By editing these folios you will see all items composing a Dashboard. Here you can add new items or deleting existing ones. By clicking the green arrow you can search for all panels in Content Server.

Some have been previsouly created but you can add custom ones too. Custom panels are created using IDOC Scripts but I will return on this with more details in a further post ASAP.

Once Dashboard modifications are complete remember to save changes.

That's all!!

lunedì 30 luglio 2012

Oracle UCM: Performing basic tasks using HCST and IDOC scripts

In this post I will create a simple HCST page containing some IDOC scripts that allow to perform some basic actions like searching for specific content among WebCenter Content and change metadata values on link click.

If you are new to IDOC I suggest you to have a look at documentation:

Idoc Script Reference Guide

Another really precious resource for IDOC, HCST, HCSP, and UCM in general is Brian Huff's book "The Definitive Guide to Stellent Content Server Development".

We will create a HCST (Hypertext Content Server Template) page that will contain both HTML and IDOC Scripts.

The following code will perform a search of all documents in UCM with:

Security Group: Public
Document Type: Document
Custom Metadata: Pending

Likely you will change these according to your UCM configuration.

Copy/paste the following code to "test.hcst"

<title>Simple HCST Page</title>


<$QueryText="dSecurityGroup <matches> `Public` <AND> dDocType <matches> `Document` <AND> xCustom_Metadata <matches> `Pending`"$>

<td>View Content</td><td>Content ID</td><td>Check-in Date</td><td>Custom Metadata</td><td>APPROVE</td><td>REJECT</td>
<$loop SearchResults$>
<td><a href="<$SearchResults.URL$>">VIEW CONTENT</a></td>
<td><a href="<$HttpCgiPath$>?IdcService=UPDATE_DOCINFO_BYFORM&coreContentOnly=1&dID=<$SearchResults.dID$>&dDocName=<$SearchResults.dDocName$>&dRevLabel=<$SearchResults.dRevLabel$>&dSecurityGroup=<$SearchResults.dSecurityGroup$>&dDocAccount=<$SearchResults.dDocAccount$>&xCustom_Metadata=Approved&IsSoap=1">CLICK HERE TO SET CUSTOM METADATA TO APPROVED</a></td>
<td><a href="<$HttpCgiPath$>?IdcService=UPDATE_DOCINFO_BYFORM&coreContentOnly=1&dID=<$SearchResults.dID$>&dDocName=<$SearchResults.dDocName$>&dRevLabel=<$SearchResults.dRevLabel$>&dSecurityGroup=<$SearchResults.dSecurityGroup$>&dDocAccount=<$SearchResults.dDocAccount$>&xCustom_Metadata=Rejected&IsSoap=1">CLICK HERE TO SET CUSTOM METADATA TO REJECTED</a></td>


Login to UCM and check-in test.hcst file. If you will publish hcst pages in a production environment I suggest to use Web Mapped Folders in order to have a more friendly URL.

Open page in a browser and you will see something like this.

giovedì 26 luglio 2012

Oracle UCM: Web Mapped Folders

Web Mapped Folders is a great feature of Oracle UCM that allow to access WebCenter Content folders and documents contained on them using an URL.

This feature is really useful when using Site Studio features because this allows your contents to be accessed in a friendly url like this:


instead of default content mapping that have a web location with an URL like this:


To enable Web Mapped Folders you need to enable "Folders_g" component. In case you have not activated it you can enable it login to Oracle UCM -> Administration -> Admin Server -> Component Manager -> click "advanced component manager" link -> on "Category Filters" CHECK all 3 items.

In "Disabled Components" list look for "Folders_g" and click Enable button, then perform a restart of UCM service.

When Folders_g is enabled go to Administration -> expand Folders Configuration -> click Web Url Mapped Folders.
Choose the folder you wish to map with a URL and it's URL Mapping then click Add button.

In this case I added a folder named "Web" and I choosed to leave the default mapping as "Web", this means this folder will be accessible at the following URL:


mercoledì 25 luglio 2012

Oracle VM: Using OVM Utils

OVM Utils are a set of utilities created by Wim Coekaerts (for further informations please read Wim's blog) and released on MOS that allow users to perform using Command Line Interface almost every task that can be performed using VM Manager web interface.

Installation is really simple, just download from

Patch 13602094: ORACLE VM 3.0 UTILS RELEASE 0.4

It's a 2.9MB zip that will be installed on the same machine where Oracle VM Manager resides.

Once downloaded extract to


[root@vmm ovm-manager-3]# unzip

[root@vmm ovm-manager-3]# unzip

[root@vmm ovm-manager-3]# cd ovm_utils

OVM Utils are 6 different executables:

ovm_managercontrol: Performs actions at VM Manager level such as configuring yum repos and create cpu compatibility group. This features is intresting since using this tool allows you to group to a single server pool server with different CPU family group.
Actions allowed are: yuminfo, yumsetup, addkeystore, keystoreinfo, createcpugroup, removecpugroup, addservertocpugroup, removeserverfromcpugroup, listcpugroups, getsessiontimeout,setsessiontimeout

ovm_poolcontrol: Performs actions at Pool level. Actions allowed are: status, info, events, refresh, list, addserver, removeserver

ovm_repocontrol: Performs actions at Repository level. Actions allowed are: list, status, info, refresh, fixup, create

ovm_servercontrol: Performs actions at Server level. Actions allowed are: start, stop, restart, kill, mainton, maintoff, status, info, lock, upgrade, events, refresh, discover, list, listnfsexports, createnfsexport, deletenfsexport

ovm_vmcontrol: Performs actions at Virtual Machine level. Actions allowed are: start, stop, suspend, resume, status, restart, kill, info, lock, list, migrate, events, vcpuset, vcpuget, gettags, settags, fixcfg, delete

ovm_vmdisks: Query the Virtual Disks associated with a Virtual Machine.

ovm_vmmessage: Allows the user to send a message to a Virtual Machine in the form of a key/value pair or send a query to see if a message with a key was set inside the Virtual Machine.

These utilities have to be called passing some parameters:


For example here are some commands:

1)Perform a server rediscovery. My server IP Address is

./ovm_servercontrol -u admin -p password -h localhost -c discover -s -P server_password

2)List all VMs in the Pool

./ovm_vmcontrol -u admin -p password -h localhost -c list

This command produced, in my case, the following output:

VM name : 'Win7'
     uuid   : '0004fb00000600003ace83d53d5313b0'
     server : 'orclvmsrv1'
     pool   : 'CHP'
     status : 'Stopped'

VM name : 'EnterpriseManager'
     uuid   : '0004fb00000600005d4bfe48c8fe0cf9'
     server : 'orclvmsrv1'
     pool   : 'CHP'
     status : 'Running'

VM name : 'VMM'
     uuid   : '0004fb0000060000e0f49015b41ead02'
     server : 'orclvmsrv1'
     pool   : 'CHP'
     status : 'Running'

3)Stop a running VM

./ovm_vmcontrol -u admin -p password -h localhost -c stop -v EnterpriseManager

If you need more informations about OVM Utils you can just read the manual located at


That's all!!

martedì 24 luglio 2012

Oracle Middleware: How to autostart Middleware services with NodeManager

This post explains how to configure NodeManager in order to perform services autostart in case of failure or manually via WebLogic Server web interface.

In order to configure NodeManager we need to create a configuration file, so login to your Oracle Middleware/WebLogic machine:

[oracle@orcl /]$ cd /home/oracle/Oracle/Middleware/wlserver_10.3/common/nodemanager

[oracle@orcl nodemanager]$ nano

Copy/paste the following configuration, changing "ListenAddress" and "ListenPort" according to your server configuration.


Once this is done you can start Nodemanager:

[oracle@orcl nodemanager]$ /home/oracle/Oracle/Middleware/wlserver_10.3/server/bin/

Now we need to configure WebLogic in order to make him communicate with NodeManager:


Click Machines -> Lock & Edit button -> New

Select a Name for Machine, set Unix and click Next button

Set "Type PLAIN" as we will not use SSL, "Listen Address" the IP address of your WLS machine and "Listen Port" the one configured in Click Finish button then Activate Changes.

Click on the Machine you just created, in my case "Machine-0" then Configuration tab, Servers tab, Add button

Select an existing server to associate with NodeManager, click Finish button and then Activate Changes button.

Move to Servers tab, Control tab, select server and you will be able to control it from there.

In case of service failure it will be automatically restarted as long as Nodemanager and WebLogic Server are running.

I suggest you to add an autostart script for WebLogic and NodeManager in order to make them start automatically on boot.

lunedì 23 luglio 2012

Oracle Middleware: Authentication against Active Directory

I've to admit that user login based on Active Directory credentials for me was a painful process. It took me some weeks to figure out how this works since every tutorial I step into was giving me different interpretations. I had to implement user login based on Active Directory for Oracle UCM so I googled for some guides: some say you need to implement AD authentication both on WebLogic server and on Oracle UCM creating an AD Provider. After trial and error I figured out that the correct method is to enable AD just on WebLogic Server, no Provider or whatsoever is needed on Middleware side.

Please note that since WebLogic server is the webserver on which most (if not all) Oracle Middleware runs Active Directory authentication explained in this post works not just for Oracle UCM but for, I suppose, every other Oracle Middleware. I've successfully applied this to Oracle Business Intelligence too.

So, let's start configuring WebLogic Server. Login to your WLS console that usually is located at:


Go to Security Realms -> myrealm -> Providers -> click on Lock & Edit to enable WLS configuration modifications -> click New

Choose a name for AD provider and in the dropdown menu choose "ActiveDirectoryAuthenticator"

Once provider has been created it's time to edit according to your AD settings.
First click on DefaultAuthenticator and be sure that Control Flag is set to SUFFICIENT

Then click on your newly created ActiveDirectory provider and set Control Flag to SUFFICIENT.

Login to your AD server, you need some informations before continue:

As you can see in the figure above I've all AD users in a folder called Users.Right click on this folder, properties and here you can see the User Base DN.

Return to WebLogic Server and on ProviderSpecific tab set:

PRINCIPAL: CN=administrator,CN=Users,DC=yourdomain,DC=yourdc
CREDENTIAL: administrator password

USER BASE DN: CN=Users,DC=yourdomain,DC=yourdc
ALL USERS FILTER: (objectclass=user)
User Name Attribute: sAMAccountName
User Object Class: user
Use Retrieved User Name as Principal: CHECK

GROUP BASE DN: CN=Users,DC=yourdomain,DC=yourdc
ALL GROUPS FILTER: (objectclass=group)
Group From Name Filter: (&(cn=%g)(objectclass=group))
Group Search Scope: subtree
Group Membership Searching: unlimited
Max Group Membership Search Level: 0
Ignore Duplicate Membership: UNCHECK
Use Token Groups For Group Membership Lookup: UNCHECK

Static Group Name Attribute: cn
Static Group Object Class: group
Static Member DN Attribute: member
Static Group DNs from Member DN Filter: (&(member=%M)(objectclass=group))

Connection Pool Size: 6
Connect Timeout: 0
Parallel Connect Delay: 0
Results Time Limit: 0
Keep Alive Enabled: UNCHECK
Follow Referrals: CHECK
Bind Anonymously On Referrals: UNCHECK
Propagate Cause For Login Exception: CHECK
Cache Enabled: CHECK
Cache Size: 32
Cache TTL: 60
GUID Attribute: objectguid

Then press Save -> Release Configuration button and perform a WLS restart.

If everything went fine on WLS restart you should be able to login to your Middleware using AD credentials. If at this point you still can't login using AD please verify that your USER BASE DN and GROUP BASE DN are set correctly according to your AD settings.

That's all!!

venerdì 20 luglio 2012

Oracle VM: Upgrade VM Manager to 3.1.1-365

This post is related to a recent patch released by Oracle with improves and corrects some issues affecting VM Manager 3.1.1.

To apply this patch first you need to download it from MOS:

Download Patch 14227416

When downloaded burn .iso file to a cd and mount it to your VM Manager Linux

[root@vmm /]# mount /dev/cdrom /mnt/cdrom
[root@vmm /]# cd /mnt/cdrom

Or if you like you can mount the .iso directly

[root@vmm /]# mount -o loop ovmm-3.1.1-upgrade-b365.iso /mnt/cdrom
[root@vmm /]# cd /mnt/cdrom

Start installation process by simply running

[root@vmm /]# ./

Please note that you should perform a full backup of VM Manager database in case something goes wrong during installation process.

Here is the output produced during patch apply:

Stating OVM Manager upgrade on Thu Jul 19 11:15:58 CEST 2012

Oracle VM Manager upgrade utility
Upgrade logfile : /tmp/upgrade-2012-07-19-15.log

It is highly recommended to do a full database repository backup prior to upgrading Oracle VM Manager ...

Press any key to continue ...

Oracle VM Manager is running ...
Verifying installation status ...
Read Oracle VM Manager config file ...
Skipping database upgrade for the same product version (3.1.1 to 3.1.1)
Found Oracle VM Manager install files ...
Found Oracle VM Manager upgrader ...
Found Oracle WebLogic Server ...
Found Java ...
Using the following information :
  Database Host          :
  Database SID           : ORCL
  Database LSNR          : 1521
  Oracle VM Schema       : ovs
  Oracle VM Manager UUID : 0004fb0000010000aef89d7d546a0d5e
  Current Build ID       :
  Upgrade from version   : 3.1.1
  Upgrade to version     : 3.1.1
Using /tmp/workdir.RnNTi2YzKa for backup and export location.
Using /tmp/patchdir.5j35ZzYWj for patching.
Undeploying previous version of Oracle VM Manager application ...
Undeploying Oracle VM Manager help ...
Undeploying Oracle VM Manager console ...
Undeploying Oracle VM Manager core ...
Waiting for Oracle VM Manager core to fully undeploy...
Finished undeploying previous version ...
Upgrading Oracle VM Manager ...
Backing up old files to /tmp/ovm-manager-3-backup-2012-07-19-111726...
Removing old files ...
Unpacking Oracle VM Manager
Refresh system-jazn-data.xml file ...
Redeploying Oracle VM Manager core container ...
Redeploying Oracle VM Manager console ...
Redeploying Oracle VM Manager help ...
Unpacking Oracle VM Manager OVM CLI Tool
Completed upgrade to ...
Writing updated config in /u01/app/oracle/ovm-manager-3/.config
Restart WebLogic ...
Stopping Oracle VM Manager                                 [  OK  ]
Starting Oracle VM Managernohup: ignoring input and redirecting stderr to stdout
                                                           [  OK  ]

OVM Manager upgrade finished on Thu Jul 19 11:18:57 CEST 2012

Once installation is completed login to your VM Manager and everything should be back as normal and if you go to Help -> About you will see:

Oracle VM Manager
Build: 20120615_365

That's all!!

giovedì 19 luglio 2012

OBIEE: How to upload existing Repository

A common task performed when OBIEE installation is done it's to load an existing repository. I usually upload an existing repository to my clients just after installing Business Intelligence.

Repository upload is done via Enterprise Manager Fusion Middleware Control and this control panel can be reached at:


Expand "Business Intelligence" folder, click "coreapplication", Deployment tab -> Repository tab.
Click "Activate Changes" button then upload a repository from your PC and choose a password. Click Apply and then "Activate Changes" button.

Finally restart OBIEE.

mercoledì 18 luglio 2012

Oracle Database: Change Password Expiration

Recently I went into this problem: Oracle WebCenter Content refused to start due to a password related problem.
After an investigation it turned out that account was locked due to password expiration.

In this post I explain a preliminary step that I didn't found in any Oracle guide (correct me if I'm wrong) but it's essential prior, or just after, installing any Oracle Middleware application.

Since Middleware applications requires a database connection, as you know, before installing one you will need to use an application called "Repository Creation Utility" that will create database schemas and users, owners of these schemas.

So, let's assume you are about to install Oracle WebCenter Content schemas using RCU (abbreviation of "Repository Creation Utility")

After schema creation you need to log into Database Enterprise Manager that can be reached at a similar address:


If you browse Users and look for the ones just created, identified in my case by prefix "DEV_", you will see that they use DEFAULT profile.

This profile has a password expiration set to 180 days that we need to change to unlimited.
Go to Server -> Profiles

Select DEFAULT profile

As you can see password expiration is set to 180 days, click Edit button

and set to UNLIMITED the field "Expire (in days)".

Note that if you have some locked accounts you can unlock them simply via SQLPlus using the following commands:

alter user username account unlock;

alter user username identified by new_password;

martedì 17 luglio 2012

Oracle VM: Reinstall VM Manager 3.1

Well, if you are used to play with Oracle VM you certainly have noticed that VM Manager is a pretty messy piece of software.
For sure it's the most vulnerable element in Oracle VM infrastructure.
It has some design uncertainties that allow users to perform some operations that shouldn't be allowed and viceversa doesen't allow users to performs other actions that should be allowed, usually because there are some untold prior actions to be taken.

So...for me was a pretty common task perform VM Manager reinstallations due to solve some malfunctioning affecting VM Manager.  

Please note that servers are not affected by reinstalling VM Manager, if you have running VMs they will keep running during manager reinstall.

In this post I will prior perform an uninstall and then a reinstall of VM Manager 3.1 on the same machine.

At first you need the UUID of the previous VM Manager. This is an unique ID assigned during installation and it changes every time, so, if you are reinstalling VM manager you need to pass the already in use UUID to keep things running.

UUID can be seen in various places, Oracle suggest to retrieve it from VM Manager backupping this configuration file:


UUID can also be seen in VM Manager console under Help -> About

Let's start with VM Manager uninstall.

Stop OVMM service.

[root@vmm cdrom]# service ovmm stop

Uninstall VM Manager choosing option number 3

[root@vmm cdrom]# ./

Oracle VM Manager Release 3.1.1 Installer

Please select an installation type:
   1: Demo
   2: Production
   3: Uninstall
   4: Help

   Select Number (1-4): 3

Uninstall Java
Uninstall Oracle VM 3.0 Manager
Uninstall Oracle WebLogic Server

It's now time to reinstall VM Manager. This is done passing previously saved UUID as a parameter. In this example my UUID is "0004fb0000010000aef89d7d546a0d5e" so you need to replace it according to yours.

[root@vmm cdrom]# ./ --uuid 0004fb0000010000aef89d7d546a0d5e

Select option 2 and you will be prompted to insert usernames and password for DB schema, WebLogic, VM Manager console and so on...

Please note that if you will use the same database and instance of a previous installation  there's no need to perform a database schema drop since the installer will drop it and recreate it for you.

Oracle VM Manager Release 3.1.1 Installer

Please select an installation type:
   1: Demo
   2: Production
   3: Uninstall
   4: Help

   Select Number (1-4): 2

...installation will take some minutes.

Step 1 of 9 : Database ...
Step 2 of 9 : Java ..
Step 3 of 9 : Database Schema ...
Creating database schema 'ovs' ...
Step 4 of 9 : WebLogic ...
Step 5 of 9 : ADF ...
Step 6 of 9 : Oracle VM  ...
Step 7 of 9 : Domain creation ...
Step 8 of 9 : Deploy ...
Step 9 of 9 : Oracle VM Manager Shell ...

After installation completion remove configuration file.

Please remove configuration file /tmp/ovm_configpXS2I9.
[root@vmm cdrom]# rm /tmp/ovm_configpXS2I9

Now login to OVM console.


Discover Servers

After servers are correctly discovered if there are warning signs on servers move to perspective Events -> Acknowledge All.

Under Networking tab all networks should have been correctly rediscovered.

In my case I have ISCSI storage so I need to rediscover all LUNs presented to servers. If you use NFS storage you need to rediscover it too, but if your using FCP storage there's no need to rescan since it will be presented under SAN Servers -> Unmanaged FibreChannel Storage Array.

If you are using ISCSI storage you need to reassign storage initiators. Click on your newly added storage, move to Perspective "Access Groups", edit the "Default Access Group", "Storage Initiators" tab and move iscsi initiators to the right.

Next step is to rediscover any existing repository. This is done clicking "Shared File Systems" and clicking Refresh button on every LUN with a repository on it.

After repository rediscovery if you move to "Repositories" tab you will see every existing repository but if you browse it you will see it's empty. This is because repos are not yet presented to any server.
To do this click on green arrows "Present-Unpresent Selected Repository" and move all servers to the right. Then refresh repository and all contents in repository will be correctly recognized.

Now move to "Servers and VMs" tab and "Virtual Machines" perspective. All VMs will be correctly recognized.

That's all!!

domenica 15 luglio 2012

OBIEE: Creating ASInstance Failed

I've encountered this problem sometimes while installing OBIEE on Oracle Linux: during installation process "Creating ASInstace" task was unable to be completed.

This seems to be a well know issue infact it has a pretty good amount of threads and discussions over OTN and luckily it's simply solvable by editing "/etc/hosts" file.

The trick is to insert first the machine IP address and then loopback address.

Edit host file in a similar way according to your network configuration.

[oracle@orcl ~]$ nano /etc/hosts orcl localhost

Start a new OBIEE installation and this time "Creating ASInstace" will be completed successfully.

giovedì 12 luglio 2012

Oracle UCM: Create Folders and Subfolders in UCM using RIDC

In this post I provide code to add another functionality to our class: create Folders and Subfolders in Content Server using RIDC.

Please note that Perform Documents Check-In using Remote IntraDoC (RIDC)  contains the prerequisite code since in this post I don't provide the full java code but just additions.

This method lets you create folders and subfolders under "Contribution Folders".
As you probably know Contribution Folders can be enabled activating "Folders_G" component in UCM Administration.

Add this code to

    //Creates a Folder in Content Server
    public void createFolder(String folderOwner, String folderName, String Has_Parent, String ParentCollectionID,

String securityGroup) {
        ServiceResponse severiceResponse = null;
        try {
            System.out.println("Creating Folder: " + folderName);
            IdcClient client = getIdcClient();
            DataBinder dataBinderReq = client.createBinder();
            dataBinderReq.putLocal("IdcService", "COLLECTION_ADD");
            dataBinderReq.putLocal("dCollectionName", folderName);
            dataBinderReq.putLocal("hasParentCollectionID", Has_Parent);
            dataBinderReq.putLocal("dParentCollectionID", ParentCollectionID);
            dataBinderReq.putLocal("dCollectionOwner", folderOwner);
            dataBinderReq.putLocal("dSecurityGroup", securityGroup);

            severiceResponse = client.sendRequest(new IdcContext(folderOwner), dataBinderReq);
            DataBinder dataBinderResp = severiceResponse.getResponseAsBinder();           
            System.out.println("Folder " +folderName +" successfully created");
        } catch(Exception ex) {
            System.out.println("Error creating Folder: " + ex.getMessage());
        } finally {
            if (severiceResponse != null) {
    } //
    //Returns Folder ID
    public String getFolderIdFromPath(String username, String path){
        String folderId=null;
        try {
            IdcClient client = getIdcClient();
            DataBinder dataBinder = client.createBinder();
            dataBinder.putLocal("IdcService", "COLLECTION_INFO");
            dataBinder.putLocal("hasCollectionPath", "true");
            dataBinder.putLocal("dCollectionPath", path);

            ServiceResponse response = client.sendRequest(new IdcContext(username), dataBinder);
            DataBinder serverBinder = response.getResponseAsBinder();
            DataResultSet resultSet = serverBinder.getResultSet("PATH");
            DataObject dataObject = resultSet.getRows().get(resultSet.getRows().size() - 1);
            folderId = dataObject.get("dCollectionID");  
        } catch(Exception ex) {
            System.out.println("Error: " + ex.getMessage());               
        return folderId;
    } //

Then create a new and paste this code:

public class Test {
    public static void main(String[] args) {
        String username = "weblogic";
        String securityGroup = "Public";
        String mainFolderName = "MAIN FOLDER NAME";
        String subFolderName = "SUB FOLDER NAME";
        String subSubFolderName = "SUB SUB FOLDER NAME";
    try {

        //Istanciate objects
        UCMAdapter ucm = new UCMAdapter();
        Document d = new Document();

        //Create Main Folder under "Contribution Folder"
        ucm.createFolder(username, mainFolderName, "true", ucm.getFolderIdFromPath("weblogic", "/Contribution Folders"), securityGroup);
        //Create Sub Folder under Main Folder
        ucm.createFolder(username, subFolderName, "true", ucm.getFolderIdFromPath("weblogic", "/Contribution Folders"+ "/" + mainFolderName), securityGroup);
        //Create Sub Sub Folder under Sub Folder
        ucm.createFolder(username, subSubFolderName, "true", ucm.getFolderIdFromPath("weblogic", "/Contribution Folders" + "/" + mainFolderName + "/" + subFolderName), securityGroup);
        //...and so on
    } catch (Exception ex) {
}//end class

In the code above you have a pattern that allow you to create a folder tree with sub-folders, sub-sub-folders and so on...

Obviously you need to edit some variables according to your preferences.

That's all!!

mercoledì 11 luglio 2012

Oracle Database: How to enable Archive Mode

Some days ago I went into this error while trying to perform a backup of a running 11gR2 database using rman:

ORA-196602: cannot backup or copy active file in NOARCHIVELOG mode

The solution was easy: ArchiveLog needs to be enabled to perform a hot backup of a running database.

Using SQLPlus connect to database.

[oracle@orcl ~]$ /u01/app/oracle/product/11.2.0/db_1/bin/sqlplus sys/password as sysdba

SQL*Plus: Release Production on Tue Jul 10 09:32:39 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Release - 64bit Production

Stop and dismount database and shutdown instance.

SQL> shutdown immediate;

Database closed.
Database dismounted.
ORACLE instance shut down.

Restart instance.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size                  2228904 bytes
Variable Size            1325403480 bytes
Database Buffers          318767104 bytes
Redo Buffers                7118848 bytes
Database mounted.

Enable ArchiveLog

SQL> alter database archivelog;

Database altered.
Re-open database

SQL> alter database open;

Database altered.
If everything went fine the following command should return Archive Mode as output:

SQL> select log_mode from v$database;


SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     294
Next log sequence to archive   296
Current log sequence           296

martedì 10 luglio 2012

Oracle UCM: Transfer Files Between Servers

After configurations migrations today I describe you a precedure to transfer documents and files between two instances of Oracle UCM/WebCenter Content.

I suggest you to have a look at this guide: Content Server - System Migration Guide 10g Release 3 (

To perform a Document transfer you need (at least) two instances of Oracle UCM with different IDC_Names; as stated in the guide linked above you cannot perform this transfer if instances have the same name because the procedure cannot recognize if you wish to perform a transfer to the local or remote instance.
Local instance will be called Source while remote instance will be called Destination, so we will perform a document transfer from Source to Destination.

Let's start adding an outgoing provider from Source instance which points to Destination instance.
Login Source -> Administration ->Providers -> Outoing -> Add

Set the values according to Destination configuration.

Destination configuration can be seen under Administration -> Configuration for DESTINATION_INSTANCE_NAME -> Show Server Configurations

When done you will be prompted to restart the instance. After UCM restart login to Source instance and under Administration -> Providers you will ses this:

Now it's time to create a new archive to be transferred from Source to Destination.
In Source instance go to Administration -> Admin Applets -> Archiver -> Edit -> Add

Let's populate our archive with documents we need to transfer to Destination. Select the archive you just created and move to Export Data tab, then press Edit button.

Choose wich documents you wish to export.

Then export them with Actions -> Export

We have our archive in Source instance. We need to create an empty archive on Destination instance in which our content will be transferred.In Destination instance go to Administration -> Admin Applets -> Archiver -> Edit -> Add

Make it targetable.Go to Transfer To tab, Edit button, then check "Is targetable" flag.

Finally login to Source instance again, select our archive, Transfer To tab, click Edit button

Select Destination instance and Target archive.

Finally transfer files going to Actions -> Transfer
That's all!!