sábado, 1 de abril de 2017

Shell Script para pesquisar e limpar codigos hexadecimais em arquivos textos

#!/bin/bash
# Creditos:
#    Amilcar de Jesus Moreti
#    AJM SOLUTIONS    
#    amilcar@ajmsolutions.com.br
#
#    Ronaldo Guizo
#     PAINCO
#     ronaldo@paico.com.br
#
#    Local:
#     /usr/local/bin/clean2.sh
#
#     Script desenvolvido para realizar alteracao em arquivos textos
#     que contenham codificação Hexa;
#
#     Data Criacao = 28/03/2017 - Data Modificacao = 01/04/2017
#    
#     Versao = 1   -       Release = 03
#
#-----------------------------------------------------------
#         .      .                                                           #
#       .  .:::.                                                            #
#       :(o o):  .                                                       #
#ooO--(_)--Ooo---------BY           __                   #
#                                          _ '_   (    / _/'     _      #
#                                         (////) __)()((///()/)_)    #
#                                          _/                              #
#-----------------------------------------------------------

# Variaveis Ambiente
dirUnl="/archive/dbExport/logix.exp"
codHex="bd be 80 81 82 83 86 87 92 93 94 95 96 8d 8e 9a 9d"
fileSol="$dirUnl/solucao.txt"
fileFinal="$dirUnl/arqCorreto.txt"
extFile="*.unl"

cat /dev/null > $fileSol

cd $dirUnl
for i in ${codHex}
do
    echo "Procurando pelo codigo Hexa $i"
    grep -P -n "\x$i" $extFile |awk -F: '{print $1, $2}' |uniq >> $fileSol 2> /dev/null
done
cat $fileSol |sort -o $fileSol
cat $fileSol |uniq > $fileFinal

for x in $(cat $fileFinal | awk '{print $1}' | uniq)
do
    for line in $(cat $fileFinal |grep $x | awk '{print $2}')
    do
        echo "Alterando a linha $line do arquivo $x"
        sed -i ''$line's/.\xbd/I/g' $x
        sed -i ''$line's/.\xbe/I/g' $x
        sed -i ''$line's/.\x8d/I/g' $x
        sed -i ''$line's/.\x8e/A/g' $x
        sed -i ''$line's/.\x80/C/g' $x
        sed -i ''$line's/.\x81//g' $x
         sed -i ''$line's/.\x82/e/g' $x
         sed -i ''$line's/.\x83/a/g' $x
         sed -i ''$line's/.\x86//g' $x
         sed -i ''$line's/.\x87/C/g' $x
        sed -i ''$line's/.\x9a/U/g' $x
        sed -i ''$line's/.\x9d/C/g' $x
         sed -i ''$line's/.\x92//g' $x
         sed -i ''$line's/.\x93/"/g' $x
         sed -i ''$line's/.\x94/"/g' $x
         sed -i ''$line's/.\x95//g' $x
         sed -i ''$line's/.\x96/-/g' $x
        echo ""
    done
done

sexta-feira, 10 de fevereiro de 2017

Alocando poll threads para uma combinação de interface/protocolo com o parâmetro de configuração NETTYPE

O parâmetro de configuração NETTYPE configura threads de pesquisa para cada tipo de conexão que suporta a instância do servidor de banco de dados. Você pode usar esse parâmetro de configuração para alocar mais de um segmento de pesquisa para uma combinação de interface/protocolo.
Defina o parâmetro de configuração NETTYPE da seguinte maneira: 
  1. Especifique SQLI, drtlitcp ou drsoctcp como o protocolo de conexão.
  2. Adicione informações sobre o número de segmentos de pesquisa, O número de conexões e a classe de processador virtual.
For example, specify:


NETTYPE drtlitcp,3,2,CPU 


Uma entrada NETTYPE pode manipular vários aliases de servidor de banco de dados no mesmo tipo de protocolo. Assim, quando DRDA® está em uso, O segmento de rede (nettype drtlitcp ou drsoctcp) geralmente tem pelo menos dois soquetes aberto e ouvindo conexões. Um socket está aberto para conexões SQLI e outro está aberto para conexões DRDA. Sockets adicionais podem estar abertos se muitos aliases de servidor separados estiverem configurados.

DRDA - Configurando o Informix para conexões com IBM Data Server Clients

Você deve ter instalado um IBM® Data Server Client e o driver aplicável. 
Este tópico explica como configurar o IBM Informix® para conexões com clientes do IBM Data Server. 
Para configurar o Informix para se conectar a um IBM Data Server Client: 
    Configure um novo server alias no arquivo sqlhosts ou no registro do Windows, usando o protocolo de conexão drtlitcp ou drsoctcp. Especifique informações em um dos seguintes formatos:

    server_name  drtlitcp machine_name service name/portnumber
    server_name  drsoctcp machine_name service name/portnumber
    
    
    Por exemplo, para uma nova entrada de arquivo sqlhosts para uma conexão DRDA®, especifique:
    ajm_dr drtlitcp ajmhost 9502

    Se você estiver definindo entradas SQLHOSTS para o Gerenciador de Conexões, inclua entradas para o protocolo de conexão drtlitcp ou drsoctcp, conforme mostrado na lista a seguir:
    ajm_primary   onsoctcp   ajmserver  ajmsrv
    ajm_hdr       onsoctcp   ajmhdr     ajmhdrsrv
    ajm_sds       onsoctcp   ajmsds     ajmsdssrv
    ajm_dr        drsoctcp   ajmdr      ajmdrsrv
    ajm_hdr_dr    drsoctcp   ajmhdr     ajmhdrsrv
    ajm_sds_dr    drsoctcp   ajmsds     ajmsdssrv
     
Verifique se o arquivo onconfig lista a conexão DRDA como um dos aliases de servidor. O alias não deve ser o DBSERVERNAME.
 
Use o DRDA para se conectar ao servidor.
Se você receber o erro-23104 ao acessar o servidor através do protocolo DRDA, o aplicativo cliente pode estar tentando vincular um valor que tenha uma codificação diferente da página de código ou conjunto de códigos da localidade do banco de dados. Defina a variável de ambiente GL_USEGLU como 1 antes de iniciar a instância do Informix. Isso permite que o servidor inicialize os conversores Unicode apropriados que são necessários para manipular as conversões de conjunto de códigos.

Visão geral do DRDA

Distributed Relational Database Architecture ™ (DRDA®) é um conjunto de protocolos que permitem a comunicação entre aplicativos e sistemas de banco de dados em diferentes plataformas e permite que dados relacionais sejam distribuídos entre várias plataformas.

Qualquer combinação de produtos de gerenciamento de banco de dados relacional que usam DRDA pode ser conectada para formar um sistema de gerenciamento de banco de dados relacional distribuído. O DRDA coordena a comunicação entre sistemas, definindo o que deve ser trocado e como ele deve ser trocado.


Você pode configurar o IBM® Informix® para usar o DRDA para responder às solicitações de uma API comum (por exemplo, do IBM Data Server JDBC Driver e do IBM Data Server .NET Provider).
  
Você também pode habilitar conexões DRDA entre uma API cliente e o Gerenciador de Conexões Informix (o utilitário oncmsm) que gerencia e redireciona as solicitações de conexão do cliente entre um servidor primário e um ou mais servidores secundários. O Gerenciador de Conexões fornece recursos de recuperação automática e balanceamento de carga. Quando um cliente faz uma solicitação para se conectar a um servidor, o Connection Manager roteia a solicitação de conexão para o servidor apropriado com base em uma configuração de nível de serviço. Você pode configurar o Gerenciador de Conexões para trocar automaticamente para servidores específicos ou para tipos específicos de servidores. Para obter mais informações sobre o Gerenciador de Conexões e instruções para configurá-lo, consulte  Manage cluster connections with the Connection Manager.

Enterprise Replication, replicação de dados e utilitários Informix, como DB-Access, requerem conexões SQLI. Os utilitários Enterprise Replication não operam através de conexões DRDA. No entanto, as ligações Enterprise Replication podem coexistir com ligações DRDA.
  
A comunicação entre uma API comum e o Informix pode usar segurança de senha criptografada ou um ID de usuário criptografado e segurança de senha criptografada.
  
Você pode usar o protocolo Secure Sockets Layer (SSL) para criptografar dados em conexões end-to-end TCP / IP e DRDA seguras entre o Informix e uma API comum de cliente. Para obter informações sobre SSL, consulte o IBM Informix Security Guide.