CTM
view release on metacpan or search on metacpan
* 03/10/2014 - correction de typos, ajout de placeholders sur la quasi-totalite des requetes SQL des modules CTM et ajout de la methode publique getErrors().
* 24/10/2014 - Renommage de la methode getCurrentServices() en getCurrentBIMServices(), de la methode workOnCurrentServices() en workOnCurrentBIMServices() et du module CTM::ReadEM::WorkOnBIMServices en CTM::ReadEM::WorkOnCurrentBIMServices.
* 24/10/2014 - ajout des fonctions _myVerboseMessage() et _myUsageMessage(), des methodes protegees _tagAtWork() et _tagAtRest() et utilisation du module Sub::Name. Mise en place de constantes afin de regrouper plusieurs informations a propos d'i...
* 24/10/2014 - correction de nombreux typos.
* 24/10/2014 - modification des fonctions getExprFor* et des methodes keep* en raison de la fonctionnalite 'lexical_topic' (my $_) qui ne sera probablement pas integree a Perl de maniere stable.
* 24/10/2014 - mise a jour de la POD.
* 27/10/2014 - _myVerboseMessage() devient la methode _invokeVerbose(). Ajout de nombreuses methodes protegees/privees et de constantes pour les proprietes les plus importantes et utilisees dans les classes (principalement les proprietes privees)...
* 27/10/2014 - ajout de la methode publique getParams() pour les sous-modules de CTM::ReadEM.
* 27/10/2014 - refonte de la POD.
* 29/10/2014 - suppression de la methode generateSOAPEnvelope(). generateSOAPEnvelope
* 30/10/2014 - DBMSTimeout -> DBMSConnectTimeout. Passage de la methode protegee _parentClass() en methode publique getParentClass(). getSessionIsConnected() -> getisSessionSeemAlive()
* 0.181 (A VENIR)
* 01/11/2014 - mise en place des modules CTM, CTM::Base::MainClass et de la classe CTM::ReadServer (cette derniere ne fait rien pour le moment) et reorganisation partielle du code.
* 05/11/2014 - amelioration des methods keep* et des fonctions liees. Voir modifications de la POD.
* 05/11/2014 - amelioration de la methode _setSerials et des methodes publiques liees. Ces methodes ont desormais aussi un impact sur les donees de l'objet.
* 0.19 (A VENIR)
* xx/xx/xxxx - ajout de classes/modules CTM::ReadEM::Work*::Items (un objet par item).
* 0.191 (A VENIR)
* xx/xx/xxxx - ajout de methodes et des modules destines au requetage sur le Control-M CM (composants du Control-M EM uniquement).
* 0.20 (A VENIR)
* xx/xx/xxxx - utilisation d'un ORM (DBIx::Class ou Rose::DB::Object).
* xx/xx/xxxx - implementation d'un timeout pour les appels DBI (execute(), do(), ...) probablement avec DBIx::Timeout.
* xx/xx/xxxx - debut de la mise a disposition de la classe CTM::ReadServer et de ses sous-modules.
* 0.21 (A VENIR)
* xx/xx/xxxx - refonte via Moose.
ex/get_bim_services.pl view on Meta::CPAN
try {
$session = CTM::ReadEM->new(
version => $opts{x},
DBMSType => $opts{T},
DBMSAddress => $opts{h},
DBMSPort => $opts{p},
DBMSInstance => $opts{i},
DBMSUser => $opts{u},
DBMSPassword => $opts{P},
DBMSTimeout => $opts{t},
verbose => $opts{V}
);
} catch {
s/\n//g;
die $_ . '. ' . usage();
};
$session->connect() || die $session->getError() . '. ' . usage();
my $servicesObj = $session->workOnCurrentBIMServices();
lib/CTM/Base/MainClass.pm view on Meta::CPAN
if (caller->isa(__PACKAGE__)) {
my $self = {};
if (defined $params{version} && defined $params{DBMSType} && defined $params{DBMSAddress} && defined $params{DBMSPort} && defined $params{DBMSInstance} && defined $params{DBMSUser}) {
$self->{_version} = $params{version};
$self->{DBMSType} = $params{DBMSType};
$self->{DBMSAddress} = $params{DBMSAddress};
$self->{DBMSPort} = $params{DBMSPort};
$self->{DBMSInstance} = $params{DBMSInstance};
$self->{DBMSUser} = $params{DBMSUser};
$self->{DBMSPassword} = exists $params{DBMSPassword} ? $params{DBMSPassword} : undef;
$self->{DBMSConnectTimeout} = $params{DBMSConnectTimeout} || 0;
$self->{CTM::Base::_verboseObjProperty} = $params{CTM::Base::_verboseObjProperty} || 0;
} else {
croak(CTM::Base::_myErrorMessage($subName, CTM::Base::_myUsageMessage($subName, "<un ou plusieurs parametres obligatoires n'ont pas ete renseignes>")));
}
$self->{CTM::Base::_workingObjProperty} = 0;
$self->{CTM::Base::_errorsObjProperty} = [];
$self->{CTM::Base::_DBIObjProperty} = undef;
$self->{CTM::Base::_sessionIsConnectedObjProperty} = 0;
$class = ref $class || $class;
return bless $self, $class;
} else {
carp(_myErrorMessage($subName, "tentative d'utilisation d'une methode protegee."));
}
return 0;
};
sub _connect {
my ($subName, $self, @tablesToTest) = ((caller 0)[3], @_);
if (caller->isa(__PACKAGE__)) {
$self->unshiftError();
if (defined $self->{_version} && $self->{_version} =~ /^[678]$/ && defined $self->{DBMSType} && $self->{DBMSType} =~ /^(Pg|Oracle|mysql|Sybase|ODBC)$/ && hascontent($self->{DBMSAddress}) && defined $self->{DBMSPort} && $self->{DBMSPort} =~ /^...
unless ($self->isSessionSeemAlive()) {
if (eval 'require DBD::' . $self->{DBMSType}) {
my $myOSIsUnix = is_os_type('Unix', 'dragonfly');
my $ALRMDieSub = sub {
die "'DBI' : impossible de se connecter (timeout atteint) a la base '" . $self->{DBMSType} . ", instance '" . $self->{DBMSInstance} . "' du serveur '" . $self->{DBMSType} . "'.";
};
my $oldaction;
if ($myOSIsUnix) {
my $mask = POSIX::SigSet->new(SIGALRM);
my $action = POSIX::SigAction->new(
lib/CTM/Base/MainClass.pm view on Meta::CPAN
} else {
local $SIG{ALRM} = \&$ALRMDieSub;
}
try {
my $connectionString = 'dbi:' . $self->{DBMSType};
if ($self->{DBMSType} eq 'ODBC') {
$connectionString .= ':driver={SQL Server};server=' . $self->{DBMSAddress} . ',' . $self->{DBMSPort} . ';database=' . $self->{DBMSInstance};
} else {
$connectionString .= ':host=' . $self->{DBMSAddress} . ';database=' . $self->{DBMSInstance} . ';port=' . $self->{DBMSPort};
}
alarm $self->{DBMSConnectTimeout};
$self->{CTM::Base::_DBIObjProperty} = DBI->connect(
$connectionString,
$self->{DBMSUser},
$self->{DBMSPassword},
{
RaiseError => 0,
PrintError => 0,
AutoCommit => 1
}
);
lib/CTM/ReadEM.pm view on Meta::CPAN
Instance (ou base) du SGBD du Control-M EM auquel se connecter.
=head2 $session->{DBMSUser}
Utilisateur du SGBD du Control-M EM auquel se connecter.
=head2 $session->{DBMSPassword}
Mot de passe du SGBD du Control-M EM auquel se connecter.
=head2 $session->{$DBMSConnectTimeout}
Timeout (en seconde) de la tentavive de connexion au SGBD du Control-M EM.
La valeur 0 signifie qu aucun timeout ne sera applique.
B<ATTENTION>, cette propriete risque de ne pas fonctionner sous Windows (ou sur d'autres OS ne gerant pas les signaux UNIX).
=head2 $session->{verbose}
Active la verbose du module, affiche les requetes SQL executees sur STDERR.
Ce parametre accepte un booleen. Faux par defaut.
( run in 0.397 second using v1.01-cache-2.11-cpan-fd5d4e115d8 )