Skip to content

HFM Registry Properties Configuration

This guide covers the critical configuration of the registry properties file (reg.properties) required for HFM integration with EPMware Agent.

Overview

The reg.properties file contains HFM instance configuration that enables: - Communication between HFM utilities and the HFM application - Registry information for HFM clusters - Connection details for HFM services - Security and authentication settings

Critical Requirement

HFM operations WILL FAIL without proper registry properties configuration. This is the most common cause of HFM integration failures.

Registry File Location

Source Location

The registry file is created during HFM configuration:

[MIDDLEWARE]/user_projects/config/foundation/11.1.2.0/reg.properties

Examples: - Windows: D:\Oracle\Middleware\user_projects\config\foundation\11.1.2.0\reg.properties - Linux: /opt/Oracle/Middleware/user_projects/config/foundation/11.1.2.0/reg.properties

Required Destination

The file MUST be copied to the EPM instance directory:

[MIDDLEWARE]/user_projects/[EPM_INSTANCE]/config/foundation/11.1.2.0/reg.properties

Examples: - Windows: D:\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\reg.properties - Linux: /opt/Oracle/Middleware/user_projects/epmsystem1/config/foundation/11.1.2.0/reg.properties

Copy Registry Properties

Windows Copy Process

REM Check if source exists
dir "D:\Oracle\Middleware\user_projects\config\foundation\11.1.2.0\reg.properties"

REM Create destination directory if needed
mkdir "D:\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0"

REM Copy the file
copy "D:\Oracle\Middleware\user_projects\config\foundation\11.1.2.0\reg.properties" ^
     "D:\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\"

REM Verify copy
dir "D:\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\reg.properties"

Linux Copy Process

# Check if source exists
ls -la /opt/Oracle/Middleware/user_projects/config/foundation/11.1.2.0/reg.properties

# Create destination directory if needed
sudo mkdir -p /opt/Oracle/Middleware/user_projects/epmsystem1/config/foundation/11.1.2.0

# Copy the file
sudo cp /opt/Oracle/Middleware/user_projects/config/foundation/11.1.2.0/reg.properties \
        /opt/Oracle/Middleware/user_projects/epmsystem1/config/foundation/11.1.2.0/

# Set permissions
sudo chmod 644 /opt/Oracle/Middleware/user_projects/epmsystem1/config/foundation/11.1.2.0/reg.properties
sudo chown oracle:dba /opt/Oracle/Middleware/user_projects/epmsystem1/config/foundation/11.1.2.0/reg.properties

# Verify copy
ls -la /opt/Oracle/Middleware/user_projects/epmsystem1/config/foundation/11.1.2.0/reg.properties

Automated Copy Script

#!/bin/bash
# copy_registry.sh - Automate registry file copy

# Configuration
ORACLE_MW="/opt/Oracle/Middleware"
EPM_INSTANCE="epmsystem1"
FOUNDATION_VER="11.1.2.0"

# Paths
SOURCE_DIR="$ORACLE_MW/user_projects/config/foundation/$FOUNDATION_VER"
DEST_DIR="$ORACLE_MW/user_projects/$EPM_INSTANCE/config/foundation/$FOUNDATION_VER"
REG_FILE="reg.properties"

echo "=== HFM Registry Properties Copy Script ==="

# Check source
if [ ! -f "$SOURCE_DIR/$REG_FILE" ]; then
    echo "ERROR: Source file not found: $SOURCE_DIR/$REG_FILE"
    exit 1
fi

echo "Source file found: $SOURCE_DIR/$REG_FILE"

# Create destination directory
if [ ! -d "$DEST_DIR" ]; then
    echo "Creating destination directory: $DEST_DIR"
    sudo mkdir -p "$DEST_DIR"
fi

# Copy file
echo "Copying registry properties..."
sudo cp "$SOURCE_DIR/$REG_FILE" "$DEST_DIR/"

# Set permissions
echo "Setting permissions..."
sudo chmod 644 "$DEST_DIR/$REG_FILE"
sudo chown oracle:dba "$DEST_DIR/$REG_FILE"

# Verify
if [ -f "$DEST_DIR/$REG_FILE" ]; then
    echo "✓ Registry properties copied successfully"
    echo "Location: $DEST_DIR/$REG_FILE"
    ls -la "$DEST_DIR/$REG_FILE"
else
    echo "✗ Copy failed!"
    exit 1
fi

echo "=== Registry Properties Copy Complete ==="

Registry File Contents

Sample Registry Properties

# reg.properties - HFM Registry Configuration
# DO NOT EDIT MANUALLY - Generated by EPM Configurator

# Foundation Services
foundation.services.url=http://foundation-server:28080/workspace

# HFM Cluster Configuration
hfm.cluster.name=Cluster1
hfm.cluster.servers=hfm-server1:19000,hfm-server2:19000

# HFM Application Registry
hfm.application.HFMPROD.cluster=Cluster1
hfm.application.HFMPROD.server=hfm-server1
hfm.application.HFMPROD.database=HFMPROD_DB

# Security Configuration
hfm.security.provider=Native
hfm.security.authentication=LDAP

# Database Connections
hfm.database.type=ORACLE
hfm.database.server=db-server:1521
hfm.database.service=HFMDB

# Communication Settings
hfm.rmi.port=19000
hfm.http.port=80
hfm.https.port=443

Key Registry Parameters

Parameter Description Example
foundation.services.url Workspace URL http://server:28080/workspace
hfm.cluster.name HFM cluster identifier Cluster1
hfm.cluster.servers Cluster member servers server1:19000,server2:19000
hfm.application.[NAME] Application-specific settings Application registry entries
hfm.database.type Database platform ORACLE or SQLSERVER
hfm.rmi.port RMI registry port 19000

Verification Steps

Step 1: Verify File Exists

#!/bin/bash
# verify_registry.sh

REG_FILE="/opt/Oracle/Middleware/user_projects/epmsystem1/config/foundation/11.1.2.0/reg.properties"

if [ -f "$REG_FILE" ]; then
    echo "✓ Registry file exists"

    # Check size
    SIZE=$(stat -c%s "$REG_FILE")
    if [ $SIZE -gt 0 ]; then
        echo "✓ File size: $SIZE bytes"
    else
        echo "✗ File is empty!"
    fi

    # Check permissions
    PERMS=$(stat -c%a "$REG_FILE")
    echo "Permissions: $PERMS"

    # Check content
    if grep -q "hfm.cluster" "$REG_FILE"; then
        echo "✓ HFM configuration found"
    else
        echo "✗ HFM configuration missing"
    fi
else
    echo "✗ Registry file not found!"
    echo "Expected location: $REG_FILE"
fi

Step 2: Test HFM Connection

# Test with LoadMetadata utility
LoadMetadata.exe -test

# If successful, you'll see:
# "Registry properties loaded successfully"
# "HFM connection test passed"

# If failed, you might see:
# "Cannot load registry properties"
# "File not found: reg.properties"

Step 3: Validate Registry Content

#!/bin/bash
# validate_registry.sh

REG_FILE="/path/to/reg.properties"

echo "=== Registry Properties Validation ==="

# Required entries
REQUIRED=(
    "foundation.services.url"
    "hfm.cluster.name"
    "hfm.database.type"
)

for entry in "${REQUIRED[@]}"; do
    if grep -q "^$entry=" "$REG_FILE"; then
        VALUE=$(grep "^$entry=" "$REG_FILE" | cut -d'=' -f2)
        echo "✓ $entry = $VALUE"
    else
        echo "✗ Missing: $entry"
    fi
done

Multiple Environment Configuration

Managing Multiple HFM Environments

When working with multiple HFM environments (Dev, Test, Prod):

#!/bin/bash
# multi_env_registry.sh

# Environment-specific directories
ENVIRONMENTS=(
    "dev:/opt/Oracle/MW_DEV/user_projects/epmsystem1"
    "test:/opt/Oracle/MW_TEST/user_projects/epmsystem1"
    "prod:/opt/Oracle/MW_PROD/user_projects/epmsystem1"
)

for env in "${ENVIRONMENTS[@]}"; do
    ENV_NAME=$(echo $env | cut -d: -f1)
    ENV_PATH=$(echo $env | cut -d: -f2)

    echo "Processing $ENV_NAME environment..."

    SOURCE="/opt/Oracle/MW_$ENV_NAME/user_projects/config/foundation/11.1.2.0/reg.properties"
    DEST="$ENV_PATH/config/foundation/11.1.2.0/reg.properties"

    if [ -f "$SOURCE" ]; then
        cp "$SOURCE" "$DEST"
        echo "✓ Copied registry for $ENV_NAME"
    else
        echo "✗ Source not found for $ENV_NAME"
    fi
done

Environment-Specific Agent Configuration

# agent.properties for different environments

# Development
hfm.dev.registry=/opt/Oracle/MW_DEV/user_projects/epmsystem1/config/foundation/11.1.2.0
hfm.dev.cluster=DevCluster

# Test
hfm.test.registry=/opt/Oracle/MW_TEST/user_projects/epmsystem1/config/foundation/11.1.2.0
hfm.test.cluster=TestCluster

# Production
hfm.prod.registry=/opt/Oracle/MW_PROD/user_projects/epmsystem1/config/foundation/11.1.2.0
hfm.prod.cluster=ProdCluster

Troubleshooting Registry Issues

Common Registry Problems

Problem Symptom Solution
File not found "Cannot load registry properties" Copy reg.properties to correct location
Wrong location HFM utilities fail to connect Verify EPM_INSTANCE path
Corrupted file "Invalid registry format" Re-copy from source
Permissions "Access denied" Fix file permissions
Version mismatch "Incompatible registry version" Use registry from same HFM version

Debug Registry Loading

# Enable debug logging for registry
export HFM_REGISTRY_DEBUG=true
export HFM_LOG_LEVEL=TRACE

# Run HFM utility with debug
LoadMetadata.exe -test -debug > registry_debug.log 2>&1

# Check debug output
grep -i "registry" registry_debug.log

Registry Not Found Error

Error Message:

ERROR: Cannot find registry properties file
ERROR: File not found: /path/to/reg.properties
HFM initialization failed

Solution Steps:

  1. Verify source exists:

    find /opt/Oracle -name "reg.properties" 2>/dev/null
    

  2. Copy to all possible locations:

    # Sometimes HFM looks in multiple places
    cp reg.properties $EPM_ORACLE_INSTANCE/config/foundation/11.1.2.0/
    cp reg.properties $EPM_ORACLE_HOME/user_projects/$EPM_INSTANCE/config/foundation/11.1.2.0/
    cp reg.properties $HYPERION_HOME/common/config/11.1.2.0/
    

  3. Set environment variable:

    export HFM_REGISTRY_PATH=/path/to/reg.properties
    

Registry Maintenance

Backup Registry File

#!/bin/bash
# backup_registry.sh

BACKUP_DIR="/backup/hfm/registry"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# Find all registry files
find /opt/Oracle -name "reg.properties" 2>/dev/null | while read reg; do
    echo "Backing up: $reg"
    cp "$reg" "$BACKUP_DIR/reg.properties.$DATE"
done

# Compress backups
tar -czf "$BACKUP_DIR/registry_backup_$DATE.tar.gz" "$BACKUP_DIR"/*.properties.*

Monitor Registry Changes

#!/bin/bash
# monitor_registry.sh

REG_FILE="/path/to/reg.properties"
CHECKSUM_FILE="/var/lib/hfm/registry.md5"

# Calculate current checksum
CURRENT_SUM=$(md5sum "$REG_FILE" | cut -d' ' -f1)

# Compare with stored checksum
if [ -f "$CHECKSUM_FILE" ]; then
    STORED_SUM=$(cat "$CHECKSUM_FILE")

    if [ "$CURRENT_SUM" != "$STORED_SUM" ]; then
        echo "WARNING: Registry file has changed!"
        echo "Previous: $STORED_SUM"
        echo "Current: $CURRENT_SUM"

        # Alert administrators
        mail -s "HFM Registry Changed" admin@company.com
    fi
fi

# Store current checksum
echo "$CURRENT_SUM" > "$CHECKSUM_FILE"

Best Practices

Registry Management Guidelines

  1. Always backup before changes - Keep copy of working registry
  2. Document locations - Track where files are copied
  3. Version control - Store registry in version control
  4. Automate copying - Use scripts for consistency
  5. Verify after updates - Test HFM connection after changes

Security Considerations

  1. Restrict access - Limit who can modify registry
  2. Audit changes - Log all registry modifications
  3. Encrypt sensitive data - If registry contains passwords
  4. Regular reviews - Check for unauthorized changes

Integration Checklist

Registry configuration checklist:

  • [ ] Source reg.properties located
  • [ ] Destination directory created
  • [ ] File copied to EPM instance folder
  • [ ] Permissions set correctly
  • [ ] File not empty or corrupted
  • [ ] HFM utilities can load registry
  • [ ] Connection test successful
  • [ ] Backup created
  • [ ] Documentation updated
  • [ ] Monitoring configured

Critical Path

The registry properties file is on the critical path for HFM operations. No HFM utilities will work without it properly configured.

Multiple Instances

If you have multiple EPM instances (epmsystem1, epmsystem2), you may need to copy the registry file to each instance directory.

Next Steps