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:
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:
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:
-
Verify source exists:
-
Copy to all possible locations:
-
Set environment variable:
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
- Always backup before changes - Keep copy of working registry
- Document locations - Track where files are copied
- Version control - Store registry in version control
- Automate copying - Use scripts for consistency
- Verify after updates - Test HFM connection after changes
Security Considerations
- Restrict access - Limit who can modify registry
- Audit changes - Log all registry modifications
- Encrypt sensitive data - If registry contains passwords
- 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
- HFM Configuration - Complete HFM setup
- HFM Integration Overview - HFM integration guide
- Planning Integration - Planning setup
- Troubleshooting - Resolve issues