.com Solutions Inc. - logo  
Products - Header Buttons
.
Repgen bullet item 7b Installgen bullet item 7b FmPro Migratorbullet item 7b CGIScripter
.
.
.

.
.

Products - Title Graphic

 

.

#!/user/local/bin/perl
# program: repgen_custom.pm
# features: This perl module contains subroutines which can
# be customized and then run before or after
# the script generation process to change the
# way output files are generated.
#
# Usage: Place a customized version of this file
# into the directory containing the GUI
# application to override using the standard
# version of the file built into the GUI
# application.
#
# Used By: repgen.pl
#
# --------------- Revision History ---------------
# Date By Changes
# 01-31-2002 dsimpson Initial Release
# 03-25-2002 dsimpson Added import of all variables and
# example of repinitora sub.

use strict;

package repgen_custom;

use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS);
use Exporter qw();
@ISA=qw(Exporter);
@EXPORT_OK = qw(before_script_generation after_script_generation);

%EXPORT_TAGS = (all => [@EXPORT_OK]);

use repgen_conf qw(output_version perl_path_gen output_file_path client_name oracle_csi_number
oracle_ts_phone replication_method scripts_directory tablelist_columns list_of_groups
override_auto_name_shorten list_of_tables sitelist_columns list_of_sites email_server
email_recipients email_sender);

# get current date/time for use inside generated files
my $current_start_time = time();
my $start_date_time = localtime ($current_start_time);

# version# to be added to output files created by repgen
# This way multiple replication scenarios can be tested by the dba
my $version = output_version();

# This sub gets the current year
my $current_year = current_year();

# name of the client
my $client_name = client_name();

my $oracle_csi_number = oracle_csi_number();
my $oracle_ts_phone = oracle_ts_phone();

my $output_file_path = output_file_path();

my @list_of_groups = list_of_groups();

# get number of groups in groups list
my $number_of_groups = @list_of_groups;

# get auto_shorten table name parameter
my $override_auto_name_shorten = override_auto_name_shorten();

# get list of tables from module
my @list_of_tables = list_of_tables();

# get number of tables
my $number_of_elements = @list_of_tables;

# get number of columns of data in tables list
my $tablelist_columns = tablelist_columns();

# get number of elements in tables list
my $number_of_tables = $number_of_elements / $tablelist_columns;

# get number of elements per row of the sites list
my $tablelist_columns = tablelist_columns();

# get number of columns for list of sites
my $sitelist_columns = sitelist_columns();

# get list of sites
my @list_of_sites = list_of_sites();

# get number of sites
my $number_of_sites = @list_of_sites / $sitelist_columns;

# get number of sitelist elements
my $sitelist_elements = $sitelist_columns * $number_of_sites;

# get name of email server
my $email_server = email_server();

# get email_sender
my $email_sender = email_sender();

# get list of email recipients
my @list_of_email_recipients = email_recipients();

# get number of email recipients
my $number_of_email_recipients = @list_of_email_recipients;

my $represume_filename = "represume";
my $represume_filename_extension = ".sql";
my $represume_filename_fullname = $represume_filename . $version . $represume_filename_extension;
my $repsuspend_filename = "repsuspend";
my $repsuspend_filename_extension = ".sql";
my $repsuspend_filename_fullname = $repsuspend_filename . $version . $repsuspend_filename_extension;
my $repremovegroup_filename = "repremovegroup";
my $repremovegroup_filename_extension = ".sql";
my $repremovegroup_filename_fullname = $repremovegroup_filename . $version . $repremovegroup_filename_extension;
my $repaddtable_filename = "repaddtable";
my $repaddtable_filename_extension = ".sql";
my $repaddtable_filename_fullname = $repaddtable_filename . $version . $repaddtable_filename_extension;
my $repaddgroup_filename = "repaddgroup";
my $repaddgroup_filename_extension = ".sql";
my $repaddgroup_filename_fullname = $repaddgroup_filename . $version . $repaddgroup_filename_extension;
my $repregen_filename = "repregen";
my $repregen_filename_extension = ".sql";
my $repregen_filename_fullname = $repregen_filename . $version . $repregen_filename_extension;
my $reptriggers_filename = "reptriggers";
my $reptriggers_filename_extension = ".sql";
my $reptriggers_filename_fullname = $reptriggers_filename . $version . $reptriggers_filename_extension;
my $idtriggers_filename = "idtriggers";
my $idtriggers_filename_extension = ".sql";
my $idtriggers_filename_fullname = $idtriggers_filename . $version . $idtriggers_filename_extension;
my $repsynonyms_filename = "repsynonyms";
my $repsynonyms_filename_extension = ".sql";
my $repsynonyms_filename_fullname = $repsynonyms_filename . $version . $repsynonyms_filename_extension;
my $repsequences_filename = "repsequences";
my $repsequences_filename_extension = ".sql";
my $repsequences_filename_fullname = $repsequences_filename . $version . $repsequences_filename_extension;
my $repcolumns_filename = "repcolumns";
my $repcolumns_filename_extension = ".sql";
my $repcolumns_filename_fullname = $repcolumns_filename . $version . $repcolumns_filename_extension;
my $repsetup_filename1 = "repsetup";
my $repsetup_filename1_extension = ".sql";
my $repsetup_filename1_fullname = $repsetup_filename1 . $version . $repsetup_filename1_extension;
my $repremovesetup_filename1 = "repremovesetup";
my $repremovesetup_filename1_extension = ".sql";
my $repremovesetup_filename1_fullname = $repremovesetup_filename1 . $version . $repremovesetup_filename1_extension;
my $repprepcheck_filename = "repprecheck";
my $repprepcheck_filename_extension = ".sql";
my $repprepcheck_filename_fullname = $repprepcheck_filename . $version . $repprepcheck_filename_extension;
my $repcheck_filename_no_mdef = "repcheck_no_mdef";
my $repcheck_filename_no_mdef_extension = ".sql";
my $repcheck_filename_no_mdef_fullname = $repcheck_filename_no_mdef . $version . $repcheck_filename_no_mdef_extension;
my $repcheck_filename_mdef = "repcheck_mdef";
my $repcheck_filename_mdef_extension = ".sql";
my $repcheck_filename_mdef_fullname = $repcheck_filename_mdef . $version . $repcheck_filename_mdef_extension;
my $repdoc_filename = "repdoc";
my $repdoc_filename_extension = ".txt";
my $repdoc_filename_fullname = $repdoc_filename . $version . $repdoc_filename_extension;
my $reptnsnamesora_filename = "reptnsnamesora";
my $reptnsnamesora_filename_extension = ".txt";
my $reptnsnamesora_filename_fullname = $reptnsnamesora_filename . $version . $reptnsnamesora_filename_extension;
my $replistenerora_filename = "replistenerora";
my $replistenerora_filename_extension = ".txt";
my $replistenerora_filename_fullname = $replistenerora_filename . $version . $replistenerora_filename_extension;
my $repinitora_filename = "repinitora";
my $repinitora_filename_extension = ".txt";
my $repinitora_filename_fullname = $repinitora_filename . $version . $repinitora_filename_extension;
my $reppkcolumn_filename = "reppkcolumns";
my $reppkcolumn_filename_extension = ".sql";
my $reppkcolumn_filename_fullname = $reppkcolumn_filename . $version . $reppkcolumn_filename_extension;

# define subs
sub before_script_generation();
sub after_script_generation();
sub current_year();
sub repinitora2();

# ----------------------- current_year --------------------------
# This sub gets the current year for use inside generated files.
sub current_year() {

# get current date/time for use inside generated files
my $current_start_time = time();
my $current_year = 1900 + (localtime)[5];

return $current_year;
}
# ----------------------- current_year -----------------------

# ----------------------- before_script_generation --------------------------
# This sub runs before the script generation process to allow customization
# of the process.
sub before_script_generation() {

# -- custom code goes here --
# This is an example of how to change the header text which gets written out
# to each output file. The $generated_header perl variable is defined globally
# in the main perl program, thus allowing this modification.
#
#$main::generated_header = "My new file text header.";

}
# ----------------------- before_script_generation -----------------------

# ----------------------- after_script_generation --------------------------
# This sub runs after the script generation process to allow additional output
# to be created, or to allow for the re-generation and replacement of
#output files after the generatoin process

sub after_script_generation() {

# custom code goes here
#repinitora2();
}
# ----------------------- after_script_generation -----------------------

# ----------------------- repinitora --------------------------
# This sub generates the repinitora.txt output file. This file contains
# the critical init.ora parameters required for replication to function.
sub repinitora2()
{

my $job_queue_interval_text = '';
if (817 > 900)
{
# Oracle version 9 or higher database - do not use obsolete job_queue_processes parameter
$job_queue_interval_text = "";
}
else
{
# Oracle version 8 database - ok to use job_queue_processes parameter
$job_queue_interval_text = "job_queue_interval = 60";
}

# open output file - with name based upon the master site
# open output file, overwrite old files
my $outputpath_full = $output_file_path . $repinitora_filename . $version . $repinitora_filename_extension;
print "Generating $outputpath_full\n";

open (FILE1,">$outputpath_full") || die ("Could not open output file $outputpath_full for writing. \n Does the full directory path exist?");

# send header with comments to output file
my $header=<<"EOF";
-- script name: repinitora
-- Features: Contains the critical init.ora entries required for
-- replication to work.
-- NOTE: These parameters must be set at each master site.
-- These values may be tuned to lower values for smaller servers,
-- the values listed here are for large SMP servers.
-- Copyright $current_year by $client_name
-- $main::generated_header

# ********** This is the customized repinitora.txt file created from the custom.pm file **********
# Global Naming -- enforce that a dblink has same name as the db it connects to
global_names = true

parallel_automatic_tuning=true
max_enabled_roles = 148

# The following parameters are needed for the Advanced Replication Option
job_queue_processes =36
$job_queue_interval_text
distributed_transactions = 500
open_links = 255
open_links_per_instance = 255
aq_tm_processes=5


EOF

print FILE1 ($header);


# close the output file
close (FILE1);
}

# ----------------------- repinitora --------------------------

1;



.

hline

. .

.

. .
 

Home | Products | Services | Downloads | Order | Support | Contact

Legal Notices

.
.   .
.
Home Products Services Downloads Order Support Contact