| Below is the latest content available from this feed: Re: Tunning em configuração da instância
Posted by: amarini@fazenda.ms.gov.br (ALEXANDRE MARINI) - Sat, 05 Nov 2011 11:13:32 EDT
Olá Gerdan. A partir do resultado das suas métricas, você poderá mais facilmente identificar a origem do seu problema.
Há excelentes materias das conferências IIUG (2010 para a sua versão 11.50), disponíveis na área de membros do site www.iiug.org
Há inclusive uma série de apresentações do Sr Art Kagel, com passo a passo de como identificar os gargalos de performance, e o que fazer para solucioná-los.
Acesse o conteúdo, e caso tenha alguma dúvida específica, pode nos perguntar, sem problemas ok?
Abç.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [186]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Tunning em configuração da instância [184 ....
Posted by: cesar_inacio_martins@yahoo.com.br (Cesar Inacio Martins) - Fri, 04 Nov 2011 19:20:24 EDT
apenas um alerta... tem um defeito na FC8 com o update statistics high / medium , que acaba fazendo com que o otimizador não escolha o melhor caminho para *alguns* SQLs , deixando mais lento.
Se houver oportunidade , sugiro atualizar para a FC9 para evitar este problema. (após atualizar, executar update statistics com drop distribuition...)
________________________________ De: GERDAN SANTOS <gerdan@gmail.com> Para: iiug-por@iiug.org Enviadas: Sexta-feira, 4 de Novembro de 2011 15:52 Assunto: Re: Tunning em configuração da instância [184]
A versão que estou utilizando é a 11.50FC8
Os resultados obtidos foram:
br rau btr ubtr zelapse ztime ---- ----- ------ ----- --------- ------------------- 2.92 99.83 102.40 32.00 108:30:35 2011-10-31 03:20:27
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [185]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Tunning em configuração da instância
Posted by: gerdan@gmail.com (GERDAN SANTOS) - Fri, 04 Nov 2011 13:53:04 EDT
A versão que estou utilizando é a 11.50FC8
Os resultados obtidos foram:
br rau btr ubtr zelapse ztime ---- ----- ------ ----- --------- ------------------- 2.92 99.83 102.40 32.00 108:30:35 2011-10-31 03:20:27
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [184]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Tunning em configuração da instância
Posted by: amarini@fazenda.ms.gov.br (amarini@fazenda.ms.gov.br) - Fri, 04 Nov 2011 13:45:42 EDT
Olá.
Qual a versão do seu engine??
Sugiro que obtenha as métricas de desempenho do informix (BTR, RAU, etc), para que seja identificada a raiz do problema.
Há aplicativos prontos no IIUG para isto, ok?
Att.
> Prezados, > conforme lembrado pelo Marco Borges, estou adicionando o sysctl aqui... > > # Kernel sysctl configuration file for Red Hat Linux > # > # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and > # sysctl.conf(5) for more details. > > # Controls IP packet forwarding > net.ipv4.ip_forward = 0 > > # Controls source route verification > net.ipv4.conf.default.rp_filter = 1 > > # Do not accept source routing > net.ipv4.conf.default.accept_source_route = 0 > > # Controls the System Request debugging functionality of the kernel > kernel.sysrq = 0 > > # Controls whether core dumps will append the PID to the core filename > # Useful for debugging multi-threaded applications > kernel.core_uses_pid = 1 > > # Controls the use of TCP syncookies > net.ipv4.tcp_syncookies = 1 > > # Controls the maximum size of a message, in bytes > kernel.msgmnb = 131072 > > # Controls the default maxmimum size of a mesage queue > kernel.msgmax = 131072 > > # Controls the maximum shared segment size, in bytes > kernel.shmmax = 75161927680 > > # Controls the maximum number of shared memory segments, in pages > kernel.shmall = 68719476736 > > # Outros parametros > #kernel.sem = 5010 641280 5010 128 > kernel.sem = 5010 641280 5010 4096 > > #fs.aio-max-nr = 12582912 > fs.aio-max-nr = 15728640 > > # msgmni > #kernel.msgmni = 32767 > #kernel.msgmni = 65534 > kernel.msgmni = 131072 > > # overcommit_memory > vm.overcommit_memory = 2 > > > > > >
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [183]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Tunning em configuração da instância
Posted by: gerdan@gmail.com (GERDAN SANTOS) - Thu, 03 Nov 2011 10:22:34 EDT
Prezados, conforme lembrado pelo Marco Borges, estou adicionando o sysctl aqui...
# Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details.
# Controls IP packet forwarding net.ipv4.ip_forward = 0
# Controls source route verification net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename # Useful for debugging multi-threaded applications kernel.core_uses_pid = 1
# Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes kernel.msgmnb = 131072
# Controls the default maxmimum size of a mesage queue kernel.msgmax = 131072
# Controls the maximum shared segment size, in bytes kernel.shmmax = 75161927680
# Controls the maximum number of shared memory segments, in pages kernel.shmall = 68719476736
# Outros parametros #kernel.sem = 5010 641280 5010 128 kernel.sem = 5010 641280 5010 4096
#fs.aio-max-nr = 12582912 fs.aio-max-nr = 15728640
# msgmni #kernel.msgmni = 32767 #kernel.msgmni = 65534 kernel.msgmni = 131072
# overcommit_memory vm.overcommit_memory = 2
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [182]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Tunning em configuração da instância
Posted by: gerdan@gmail.com (GERDAN SANTOS) - Thu, 03 Nov 2011 08:52:48 EDT
Prezados, poderiam sugerir algum tunning a ser realizado nesta configuração do informix.
A máquina é uma r900 com 24 núcleos e 96GB de RAM, infelizmente não temos storage(sei que parece brincadeira, mas é verdade)
Agradeço a todos pela atenção prestada.
ROOTNAME rootdbs ROOTPATH /opt/ids/lnk/prod/ol_root01 ROOTOFFSET 0 ROOTSIZE 512000 MIRROR 0 MIRRORPATH MIRROROFFSET 0
PHYSDBS physdbs PHYSFILE 3500000 PLOG_OVERFLOW_PATH $INFORMIXDIR/tmp/prod PHYSBUFF 1024
LOGFILES 213 LOGSIZE 40000 DYNAMIC_LOGS 1 LOGBUFF 1024
LTXHWM 40 LTXEHWM 50
################################################################### # Server Message File Configuration Parameters ################################################################### # MSGPATH - The path of the IDS message log file # CONSOLE - The path of the IDS console message file ###################################################################
MSGPATH $INFORMIXDIR/tmp/prod/repl_dfids02_tcp.FC8.log CONSOLE $INFORMIXDIR/tmp/online.con
################################################################### # Tblspace Configuration Parameters ################################################################### # TBLTBLFIRST - The first extent size, in KB, for the tblspace # tblspace. Must be in multiples of the page size. # TBLTBLNEXT - The next extent size, in KB, for the tblspace # tblspace. Must be in multiples of the page size. # The default setting for both is 0, which allows IDS to manage # extent sizes automatically. # # TBLSPACE_STATS - Enables (1) or disables (0) IDS to maintain # tblspace statistics ###################################################################
TBLTBLFIRST 0 TBLTBLNEXT 0 TBLSPACE_STATS 1
################################################################### # Temporary dbspace and sbspace Configuration Parameters ################################################################### # DBSPACETEMP - The list of dbspaces used to store temporary # tables and other objects. Specify a colon # separated list of dbspaces that exist when the # server is started. If no dbspaces are specified, # or if all specified dbspaces are not valid, # temporary files are created in the /tmp directory # instead. # SBSPACETEMP - The list of sbspaces used to store temporary # tables for smart large objects. If no sbspace # is specified, temporary files are created in # a standard sbspace. ###################################################################
DBSPACETEMP tempdbs1,tempdbs2 #DBSPACETEMP SBSPACETEMP tsblbdbs
################################################################### # Dbspace and sbspace Configuration Parameters ################################################################### # SBSPACENAME - The default sbspace name where smart large objects # are stored if no sbspace is specified during # smart large object creation. Some DataBlade # modules store smart large objects in this # location. # SYSSBSPACENAME - The default sbspace for system statistics # collection. Otherwise, IDS stores statistics # in the sysdistrib system catalog table. # ONDBSPACEDOWN - Specifies how IDS behaves when it encounters a # dbspace that is offline. Acceptable values # are: # 0 Continue # 1 Stop # 2 Wait for DBA action ###################################################################
SBSPACENAME sblobdbs SYSSBSPACENAME ONDBSPACEDOWN 0
################################################################### # System Configuration Parameters ################################################################### # SERVERNUM - The unique ID for the IDS instance. Acceptable # values are 0 through 255, inclusive. # DBSERVERNAME - The name of the default database server # DBSERVERALIASES - The list of up to 32 alternative dbservernames, # separated by commas ###################################################################
SERVERNUM 44 DBSERVERNAME repl_dfids02_tcp DBSERVERALIASES repl_dfids02_shm
################################################################### # Network Configuration Parameters ################################################################### # NETTYPE - The configuration of poll threads # for a specific protocol. The # format is: # NETTYPE <protocol>,<# poll threads> # ,<number of connections/thread> # ,(NET|CPU) # You can include multiple NETTYPE # entries for multiple protocols. # LISTEN_TIMEOUT - The number of seconds that IDS # waits for a connection # MAX_INCOMPLETE_CONNECTIONS - The maximum number of incomplete # connections before IDS logs a Denial # of Service (DoS) error # FASTPOLL - Enables (1) or disables (0) fast # polling of your network, if your # operating system supports it. ###################################################################
NETTYPE soctcp,4,250,NET NETTYPE ipcshm,1,50,CPU LISTEN_TIMEOUT 120 MAX_INCOMPLETE_CONNECTIONS 1024 FASTPOLL 1
################################################################### # CPU-Related Configuration Parameters ################################################################### # MULTIPROCESSOR - Specifies whether the computer has multiple # CPUs. Acceptable values are: 0 (single # processor), 1 (multiple processors or # multi-core chips) # VPCLASS cpu - Configures the CPU VPs. The format is: # VPCLASS cpu,num=<#>[,max=<#>][,aff=<#>] # [,noage] # VP_MEMORY_CACHE_KB - Specifies the amount of private memory # blocks of your CPU VP, in KB, that the # database server can access. # Acceptable values are: # 0 (disable) # 800 through 40% of the value of SHMTOTAL # SINGLE_CPU_VP - Optimizes performance if IDS runs with # only one CPU VP. Acceptable values are: # 0 multiple CPU VPs # Any nonzero value (optimize for one CPU VP) ###################################################################
MULTIPROCESSOR 1 VPCLASS cpu,num=10,noage VP_MEMORY_CACHE_KB 1000 SINGLE_CPU_VP 0
################################################################### # AIO and Cleaner-Related Configuration Parameters ################################################################### # VPCLASS aio - Configures the AIO VPs. The format is: # VPCLASS aio,num=<#>[,max=<#>][,aff=<#>][,noage] # CLEANERS - The number of page cleaner threads # AUTO_AIOVPS - Enables (1) or disables (0) automatic management # of AIO VPs # DIRECT_IO - Specifies whether direct I/O is used for cooked # files used for dbspace chunks. # Acceptable values are: # 0 Disable # 1 Enable direct I/O # 2 Enable concurrent I/O ###################################################################
#VPCLASS aio,num=1 CLEANERS 128 AUTO_AIOVPS 1 DIRECT_IO 1
################################################################### # Lock-Related Configuration Parameters ################################################################### # LOCKS - The initial number of locks when IDS starts. # Dynamic locking can add extra locks if needed. # DEF_TABLE_LOCKMODE - The default table lock mode for new tables. # Acceptable values are ROW and PAGE (default). ###################################################################
LOCKS 2000000 DEF_TABLE_LOCKMODE row
################################################################### # Shared Memory Configuration Parameters ################################################################### # RESIDENT - Controls whether shared memory is resident. # Acceptable values are: # 0 off (default) # 1 lock the resident segment only # n lock the resident segment and the next n-1 # virtual segments, where n < 100 # -1 lock all resident and virtual segments # SHMBASE - The shared memory base address; do not change # SHMVIRTSIZE - The initial size, in KB, of the virtual # segment of shared memory # SHMADD - The size, in KB, of additional virtual shared # memory segments # EXTSHMADD - The size, in KB, of each extension shared # memory segment # SHMTOTAL - The maximum amount of shared memory for IDS, # in KB. A 0 indicates no specific limit. # SHMVIRT_ALLOCSEG - Controls when IDS adds a memory segment and # the alarm level if the memory segment cannot # be added. # For the first field, acceptable values are: # - 0 Disabled # - A decimal number indicating the percentage # of memory used before a segment is added # - The number of KB remaining when a segment # is added # For the second field, specify an alarm level # from 1 (non-event) to 5 (fatal error). # SHMNOACCESS - A list of up to 10 memory address ranges # that IDS cannot use to attach shared memory. # Each address range is the start and end memory # address in hex format, separated by a hyphen. # Use a comma to separate each range in the list. ###################################################################
RESIDENT 0 SHMBASE 0x44000000L SHMVIRTSIZE 18192000 SHMADD 32768 EXTSHMADD 16384 SHMTOTAL 31457280 SHMVIRT_ALLOCSEG 0,3 SHMNOACCESS
################################################################### # Checkpoint and System Block Configuration Parameters ################################################################### # CKPINTVL - Specifies how often, in seconds, IDS checks # if a checkpoint is needed. 0 indicates that # IDS does not check for checkpoints. Ignored # if RTO_SERVER_RESTART is set. # AUTO_CKPTS - Enables (1) or disables (0) monitoring of # critical resource to trigger checkpoints # more frequently if there is a chance that # transaction blocking might occur. # RTO_SERVER_RESTART - Specifies, in seconds, the Recovery Time # Objective for IDS restart after a server # failure. Acceptable values are 0 (off) and # any number from 60-1800, inclusive. # BLOCKTIMEOUT - Specifies the amount of time, in seconds, # for a system block. ###################################################################
CKPTINTVL 600 AUTO_CKPTS 1 RTO_SERVER_RESTART 1800 BLOCKTIMEOUT 600
################################################################### # Transaction-Related Configuration Parameters ################################################################### # TXTIMEOUT - The distributed transaction timeout, in seconds # DEADLOCK_TIMEOUT - The maximum time, in seconds, to wait for a # lock in a distributed transaction. # HETERO_COMMIT - Enables (1) or disables (0) heterogeneous # commits for a distributed transaction # involving an EGM gateway. ###################################################################
TXTIMEOUT 300 DEADLOCK_TIMEOUT 60 HETERO_COMMIT 0
################################################################### # ontape Tape Device Configuration Parameters ################################################################### # TAPEDEV - The tape device path for backups. To use standard # I/O instead of a device, set to stdio. # TAPEBLK - The tape block size, in KB, for backups # TAPESIZE - The maximum amount of data to put on one backup # tape. Acceptable values are 0 (unlimited) or any # positive integral multiple of TAPEBLK. ###################################################################
TAPEDEV STDIO TAPEBLK 4096 TAPESIZE 0
################################################################### # ontape Logial Log Tape Device Configuration Parameters ################################################################### # LTAPEDEV - The tape device path for logical logs # LTAPEBLK - The tape block size, in KB, for backing up logical # logs # LTAPESIZE - The maximum amount of data to put on one logical # log tape. Acceptable values are 0 (unlimited) or any # positive integral multiple of LTAPEBLK. ###################################################################
LTAPEDEV /opt/ids/bkp/prod/bkp_log_siop_tcp LTAPEBLK 128 LTAPESIZE 0
################################################################### # Backup and Restore Configuration Parameters ################################################################### # BAR_ACT_LOG - The ON-Bar activity log file location. # Do not use the /tmp directory. Use a # directory with restricted permissions. # BAR_DEBUG_LOG - The ON-Bar debug log file location. # Do not use the /tmp directory. Use a # directory with restricted permissions. # BAR_DEBUG - The debug level for ON-Bar. Acceptable # values are 0 (off) through 9 (high). # BAR_MAX_BACKUP - The number of backup threads used in a # backup. Acceptable values are 0 (unlimited) # or any positive integer. # BAR_RETRY - Specifies the number of time to retry a # backup or restore operation before reporting # a failure # BAR_NB_XPORT_COUNT - Specifies the number of data buffers that # each onbar_d process uses to communicate # with the database server # BAR_XFER_BUF_SIZE - The size, in pages, of each data buffer. # Acceptable values are 1 through 15 for # 4 KB pages and 1 through 31 for 2 KB pages. # RESTARTABLE_RESTORE - Enables ON-Bar to continue a backup after a # failure. Acceptable values are OFF or ON. # BAR_PROGRESS_FREQ - Specifies, in minutes, how often progress # messages are placed in the ON-Bar activity # log. Acceptable values are: 0 (record only # completion messages) or 5 and above. # BAR_BSALIB_PATH - The shared library for ON-Bar and the # storage manager. The default value is # $INFORMIXDIR/lib/ibsad001 (with a # platform-specific file extension). # BACKUP_FILTER - Specifies the pathname of a filter program # to transform data during a backup, plus any # program options # RESTORE_FILTER - Specifies the pathname of a filter program # to transform data during a restore, plus any # program options # BAR_PERFORMANCE - Specifies the type of performance statistics # to report to the ON-Bar activity log for backup # and restore operations. # Acceptable values are: # 0 = Turn off performance monitoring (Default) # 1 = Display the time spent transferring data # between the IDS instance and the storage # manager # 2 = Display timestamps in microseconds # 3 = Display both timestamps and transfer # statistics ###################################################################
BAR_ACT_LOG $INFORMIXDIR/tmp/bar_act.log BAR_DEBUG_LOG $INFORMIXDIR/tmp/bar_dbug.log BAR_DEBUG 0 BAR_MAX_BACKUP 0 BAR_RETRY 1 BAR_NB_XPORT_COUNT 20 BAR_XFER_BUF_SIZE 31 RESTARTABLE_RESTORE ON BAR_PROGRESS_FREQ 0 BAR_BSALIB_PATH BACKUP_FILTER RESTORE_FILTER BAR_PERFORMANCE 0
################################################################### # Informix Storage Manager (ISM) Configuration Parameters ################################################################### # ISM_DATA_POOL - Specifies the name for the ISM data pool # ISM_LOG_POOL - Specifies the name for the ISM log pool ###################################################################
ISM_DATA_POOL ISMData ISM_LOG_POOL ISMLogs
################################################################### # Data Dictionary Cache Configuration Parameters ################################################################### # DD_HASHSIZE - The number of data dictionary pools. Set to any # positive integer; a prime number is recommended. # DD_HASHMAX - The number of entries per pool. # Set to any positive integer. ###################################################################
DD_HASHSIZE 31 DD_HASHMAX 10
################################################################### # Data Distribution Configuration Parameters ################################################################### # DS_HASHSIZE - The number of data Ddstribution pools. # Set to any positive integer; a prime number is # recommended. # DS_POOLSIZE - The maximum number of entries in the data # distribution cache. Set to any positive integer. ###################################################################
DS_HASHSIZE 31 DS_POOLSIZE 127
################################################################## # User Defined Routine (UDR) Cache Configuration Parameters ################################################################## # PC_HASHSIZE - The number of UDR pools. Set to any # positive integer; a prime number is recommended. # PC_POOLSIZE - The maximum number of entries in the # UDR cache. Set to any positive integer. ###################################################################
PC_HASHSIZE 31 PC_POOLSIZE 127
################################################################### # SQL Statement Cache Configuration Parameters ################################################################### # STMT_CACHE - Controls SQL statement caching. Acceptable # values are: # 0 Disabled # 1 Enabled at the session level # 2 All statements are cached # STMT_CACHE_HITS - The number of times an SQL statement must be # executed before becoming fully cached. # 0 indicates that all statements are # fully cached the first time. # STMT_CACHE_SIZE - The size, in KB, of the SQL statement cache # STMT_CACHE_NOLIMIT - Controls additional memory consumption. # Acceptable values are: # 0 Limit memory to STMT_CACHE_SIZE # 1 Obtain as much memory, temporarily, as needed # STMT_CACHE_NUMPOOL - The number of pools for the SQL statement # cache. Acceptable value is a positive # integer between 1 and 256, inclusive. ###################################################################
STMT_CACHE 0 STMT_CACHE_HITS 0 STMT_CACHE_SIZE 1024 STMT_CACHE_NOLIMIT 0 STMT_CACHE_NUMPOOL 128
################################################################### # Operating System Session-Related Configuration Parameters ################################################################### # USEOSTIME - The precision of SQL statement timing. # Accepted values are 0 (precision to seconds) # and 1 (precision to subseconds). Subsecond # precision can degrade performance. # STACKSIZE - The size, in KB, for a session stack # ALLOW_NEWLINE - Controls whether embedded new line characters # in string literals are allowed in SQL # statements. Acceptable values are 1 (allowed) # and any number other than 1 (not allowed). # USELASTCOMMITTED - Controls the committed read isolation level. # Acceptable values are: # - NONE Waits on a lock # - DIRTY READ Uses the last committed value in # place of a dirty read # - COMMITTED READ Uses the last committed value # in place of a committed read # - ALL Uses the last committed value in place # of all isolation levels that support the last # committed option ###################################################################
USEOSTIME 1 ######STACKSIZE 64 parametro original da configuracao para 64 bits. STACKSIZE 128 ALLOW_NEWLINE 1 USELASTCOMMITTED NONE
################################################################### # Index Related Configuration Parameters ################################################################### # FILLFACTOR - The percentage of index page fullness # MAX_FILL_DATA_PAGES - Enables (1) or disables (0) filling data # pages that have variable length rows as # full as possible # BTSCANNER - Specifies the configuration settings for all # btscanner threads. The format is: # BTSCANNER num=<#>,threshold=<#>,rangesize=<#>, # alice=(0-12),compression=[low|med|high|default] # ONLIDX_MAXMEM - The amount of memory, in KB, allocated for # the pre-image pool and updator log pool for # each partition. ###################################################################
FILLFACTOR 90 MAX_FILL_DATA_PAGES 1 BTSCANNER num=2,threshold=5000,rangesize=-1,alice=6,compression=default ONLIDX_MAXMEM 1024000
################################################################### # Parallel Database Query (PDQ) Configuration Parameters ################################################################### # MAX_PDQPRIORITY - The maximum amount of resources, as a # percentage, that PDQ can allocate to any # one decision support query # DS_MAX_QUERIES - The maximum number of concurrent decision # support queries # DS_TOTAL_MEMORY - The maximum amount, in KB, of decision # support query memory # DS_MAX_SCANS - The maximum number of concurrent decision # support scans # DS_NONPDQ_QUERY_MEM - The amount of non-PDQ query memory, in KB. # Acceptable values are 128 to 25% of # DS_TOTAL_MEMORY. # DATASKIP - Specifies whether to skip dbspaces when # processing a query. Acceptable values are: # - ALL Skip all unavailable fragments # - ON <dbspace1> <dbspace2>... Skip listed # dbspaces # - OFF Do not skip dbspaces (default) ###################################################################
MAX_PDQPRIORITY 2 DS_MAX_QUERIES DS_TOTAL_MEMORY DS_MAX_SCANS 1048576 DS_NONPDQ_QUERY_MEM 128 DATASKIP
################################################################### # Optimizer Configuration Parameters ################################################################### # OPTCOMPIND - Controls how the optimizer determines the best # query path. Acceptable values are: # 0 Nested loop joins are preferred # 1 If isolation level is repeatable read, # works the same as 0, otherwise works same as 2 # 2 Optimizer decisions are based on cost only # DIRECTIVES - Specifies whether optimizer directives are # enabled (1) or disabled (0). Default is 1. # EXT_DIRECTIVES - Controls the use of external SQL directives. # Acceptable values are: # 0 Disabled # 1 Enabled if the IFX_EXTDIRECTIVES environment # variable is enabled # 2 Enabled even if the IFX_EXTDIRECTIVES # environment is not set # OPT_GOAL - Controls how the optimizer should optimize for # fastest retrieval. Acceptable values are: # -1 All rows in a query # 0 The first rows in a query # IFX_FOLDVIEW - Enables (1) or disables (0) folding views that # have multiple tables or a UNION ALL clause. # Disabled by default. # AUTO_REPREPARE - Enables (1) or disables (0) automatically # re-optimizing stored procedures and re-preparing # prepared statements when tables that are referenced # by them change. Minimizes the occurrence of the # -710 error. ####################################################################
OPTCOMPIND 0 DIRECTIVES 1 EXT_DIRECTIVES 0 OPT_GOAL -1 IFX_FOLDVIEW 1 AUTO_REPREPARE 1
################################################################### # Read-ahead Configuration Parameters ################################################################### #RA_PAGES - The number of pages, as a positive integer, to # attempt to read ahead #RA_THRESHOLD - The number of pages, as a postive integer, left # before the next read-ahead group ###################################################################
RA_PAGES 64 RA_THRESHOLD 16
################################################################### # SQL Tracing and EXPLAIN Plan Configuration Parameters ################################################################### # EXPLAIN_STAT - Enables (1) or disables (0) including the Query # Statistics section in the EXPLAIN output file # SQLTRACE - Configures SQL tracing. The format is: # SQLTRACE level=(low|med|high),ntraces=<#>,size=<#>, # mode=(global|user) ###################################################################
EXPLAIN_STAT 1 #SQLTRACE level=low,ntraces=1000,size=2,mode=global
################################################################### # Security Configuration Parameters ################################################################### # DBCREATE_PERMISSION - Specifies the users who can create # databases (by default, any user can). # Add a DBCREATE_PERMISSION entry # for each user who needs database # creation privileges. Ensure user # informix is authorized when you # first initialize IDS. # DB_LIBRARY_PATH - Specifies the locations, separated # by commas, from which IDS can use # UDR or UDT shared libraries. If set, # make sure that all directories containing # the blade modules are listed, to # ensure all DataBlade modules will # work. # IFX_EXTEND_ROLE - Controls whether administrators # can use the EXTEND role to specify # which users can register external # routines. Acceptable values are: # 0 Any user can register external # routines # 1 Only users granted the ability # to register external routines # can do so (Default) # SECURITY_LOCALCONNECTION - Specifies whether IDS performs # security checking for local # connections. Acceptable values are: # 0 Off # 1 Validate ID # 2 Validate ID and port # UNSECURE_ONSTAT - Controls whether non-DBSA users are # allowed to run all onstat commands. # Acceptable values are: # 1 Enabled # 0 Disabled (Default) # ADMIN_USER_MODE_WITH_DBSA - Controls who can connect to IDS # in administration mode. Acceptable # values are: # 1 DBSAs, users specified by # ADMIN_MODE_USERS, and the user # informix # 0 Only the user informix (Default) # ADMIN_MODE_USERS - Specifies the user names, separated by # commas, who can connect to IDS in # administration mode, in addition to # the user informix # SSL_KEYSTORE_LABEL - The label, up to 512 characters, of # the IDS certificate used in Secure # Sockets Layer (SSL) protocol # communications. ###################################################################
#DBCREATE_PERMISSION informix #DB_LIBRARY_PATH IFX_EXTEND_ROLE 1 SECURITY_LOCALCONNECTION 0 UNSECURE_ONSTAT 1 ADMIN_USER_MODE_WITH_DBSA 0 ADMIN_MODE_USERS SSL_KEYSTORE_LABEL ################################################################### # LBAC Configuration Parameters ################################################################### # PLCY_POOLSIZE - The maximum number of entries in each hash # bucket of the LBAC security information cache # PLCY_HASHSIZE - The number of hash buckets in the LBAC security # information cache # USRC_POOLSIZE - The maximum number of entries in each hash # bucket of the LBAC credential memory cache # USRC_HASHSIZE - The number of hash buckets in the LBAC credential # memory cache ###################################################################
PLCY_POOLSIZE 127 PLCY_HASHSIZE 31 USRC_POOLSIZE 127 USRC_HASHSIZE 31
################################################################### # Optical Configuration Parameters ################################################################### # STAGEBLOB - The name of the optical blobspace. Must be set to # use the optical-storage subsystem. # OPCACHEMAX - Maximum optical cache size, in KB ###################################################################
STAGEBLOB OPCACHEMAX 0
################################################################### # High Availability and Enterprise Replication Security # Configuration Parameters ################################################################### # ENCRYPT_HDR - Enables (1) or disables (0) encryption for HDR. # ENCRYPT_SMX - Controls the level of encryption for RSS and # SDS servers. Acceptable values are: # 0 Do not encrypt (Default) # 1 Encrypt if possible # 2 Always encrypt # ENCRYPT_CDR - Controls the level of encryption for ER. # Acceptable values are: # 0 Do not encrypt (Default) # 1 Encrypt if possible # 2 Always encrypt # ENCRYPT_CIPHERS - A list of encryption ciphers and modes, # separated by commas. Default is all. # ENCRYPT_MAC - Controls the level of message authentication # code (MAC). Acceptable values are off, high, # medium, and low. List multiple values separated # by commas; the highest common level between # servers is used. # ENCRYPT_MACFILE - The paths of the MAC key files, separated # by commas. Use the builtin keyword to specify # the built-in key. Default is builtin. # ENCRYPT_SWITCH - Defines the frequencies, in minutes, at which # ciphers and keys are renegotiated. Format is: # <cipher_switch_time>,<key_switch_time> # Default is 60,60. ###################################################################
ENCRYPT_HDR ENCRYPT_SMX ENCRYPT_CDR 0 ENCRYPT_CIPHERS ENCRYPT_MAC ENCRYPT_MACFILE ENCRYPT_SWITCH
################################################################### # Enterprise Replication (ER) Configuration Parameters ################################################################### # CDR_EVALTHREADS - The number of evaluator threads per # CPU VP and the number of additional # threads, separated by a comma. # Acceptable values are: a non-zero value # followed by a non-negative value # CDR_DSLOCKWAIT - The number of seconds the Datasync # waits for database locks. # CDR_QUEUEMEM - The maximum amount of memory, in KB, # for the send and receive queues. # CDR_NIFCOMPRESS - Controls the network interface # compression level. # Acceptable values are: # -1 Never # 0 None # 1-9 Compression level # CDR_SERIAL - Specifies the incremental size and # the starting value of replicated # serial columns. The format is: # <delta>,<offset> # CDR_DBSPACE - The dbspace name for the syscdr # database. # CDR_QHDR_DBSPACE - The name of the transaction record # dbspace. Default is the root dbspace. # CDR_QDATA_SBSPACE - The names of sbspaces for spooled # transaction data, separated by commas. # CDR_MAX_DYNAMIC_LOGS - The maximum number of dynamic log # requests that ER can make within one # server session. Acceptable values are: # -1 (unlimited), 0 (disabled), # 1 through n (limit to n requests) # CDR_SUPPRESS_ATSRISWARN - The Datasync error and warning code # numbers to be suppressed in ATS and RIS # files. Acceptable values are: numbers # or ranges of numbers separated by commas. # Separate numbers in a range by a hyphen. ###################################################################
CDR_EVALTHREADS 1,2 CDR_DSLOCKWAIT 5 CDR_QUEUEMEM 4096 CDR_NIFCOMPRESS 0 CDR_SERIAL 0 CDR_DBSPACE CDR_QHDR_DBSPACE CDR_QDATA_SBSPACE CDR_MAX_DYNAMIC_LOGS 0 CDR_SUPPRESS_ATSRISWARN
################################################################### # High Availability Cluster (HDR, SDS, and RSS) # Configuration Parameters ################################################################### # DRAUTO - Controls automatic failover of primary # servers. Valid for HDR, SDS, and RSS. # Acceptable values are: # 0 Manual # 1 Retain server type # 2 Reverse server type # 3 Connection Manager Arbitrator controls # server type # DRINTERVAL - The maximum interval, in seconds, between HDR # buffer flushes. Valid for HDR only. # DRTIMEOUT - The time, in seconds, before a network # timeout occurs. Valid for HDR only. # DRLOSTFOUND - The path of the HDR lost-and-found file. # Valid of HDR only. # DRIDXAUTO - Enables (1) or disables (0) automatic index # repair for an HDR pair. Default is 0. # HA_ALIAS - The server alias for a high-availability # cluster. Must be the same as a value of # DBSERVERNAME or DBSERVERALIASES that uses a # network-based connection type. Valid for HDR, # SDS, and RSS. # LOG_INDEX_BUILDS - Enable (1) or disable (0) index page logging. # Required for RSS. Optional for HDR and SDS. # SDS_ENABLE - Enables (1) or disables (0) an SDS server. # Set this value on an SDS server after setting # up the primary. Valid for SDS only. # SDS_TIMEOUT - The time, in seconds, that the primary waits # for an acknowledgement from an SDS server # while performing page flushing before marking # the SDS server as down. Valid for SDS only. # SDS_TEMPDBS - The temporary dbspace used by an SDS server. # The format is: # <dbspace_name>,<path>,<pagesize in KB>,<offset in KB>, # <size in KB> # You can include up to 16 entries of SDS_TEMPDBS to # specify additional dbspaces. Valid for SDS. # SDS_PAGING - The paths of two buffer paging files, # Separated by a comma. Valid for SDS only. # UPDATABLE_SECONDARY - Controls whether secondary servers can accept # update, insert, and delete operations from clients. # If enabled, specifies the number of connection # threads between the secondary and primary servers # for transmitting updates from the secondary. # Acceptable values are: # 0 Secondary server is read-only (default) # 1 through twice the number of CPU VPs, threads # for performing updates from the secondary. # Valid for HDR, SDS, and RSS. # FAILOVER_CALLBACK - Specifies the path and program name called when a # secondary server transitions to a standard or # primary server. Valid for HDR, SDS, and RSS. # TEMPTAB_NOLOG - Controls the default logging mode for temporary # tables that are explicitly created with the # CREATE TEMP TABLE or SELECT INTO TEMP statements. # Secondary servers must not have logged temporary # tables. Acceptable values are: # 0 Create temporary tables with logging enabled by # default. # 1 Create temporary tables without logging. # Required to be set to 1 on HDR, RSS, and SDS # secondary servers. # DELAY_APPLY - Specifies a delay factor for RSS # secondary nodes. The format is ###[DHMS] where # D stands for days # H stands for hours # M stands for minutes # S stands for seconds (default) # STOP_APPLY - Halts the apply on an RSS node # 1 halts the apply # 0 resumes the apply (default) # YYYY:MM:DD:hh:mm:ss - time at which to stop # LOG_STAGING_DIR - Specifies a directory in which to stage log files ###################################################################
DRAUTO 0 DRINTERVAL -1 DRTIMEOUT 300 HA_ALIAS DRLOSTFOUND $INFORMIXDIR/etc/dr.lostfound DRIDXAUTO 1 LOG_INDEX_BUILDS 1 SDS_ENABLE SDS_TIMEOUT 20 SDS_TEMPDBS SDS_PAGING UPDATABLE_SECONDARY 0 FAILOVER_CALLBACK TEMPTAB_NOLOG 1 DELAY_APPLY 0 STOP_APPLY 0 LOG_STAGING_DIR
################################################################### # Logical Recovery Parameters ################################################################### # ON_RECVRY_THREADS - The number of logical recovery threads that # run in parallel during a warm restore. # OFF_RECVRY_THREADS - The number of logical recovery threads used # in a cold restore. Also, the number of # threads used during fast recovery. ###################################################################
ON_RECVRY_THREADS 2 OFF_RECVRY_THREADS 10
################################################################### # Diagnostic Dump Configuration Parameters ################################################################### # DUMPDIR - The location Assertion Failure (AF) diagnostic # files # DUMPSHMEM - Controls shared memory dumps. Acceptable values # are: # 0 Disabled # 1 Dump all shared memory # 2 Exclude the buffer pool from the dump # DUMPGCORE - Enables (1) or disables (0) whether IDS dumps a # core using gcore # DUMPCORE - Enables (1) or disables (0) whether IDS dumps a # core after an AF # DUMPCNT - The maximum number of shared memory dumps or # core files for a single session ###################################################################
DUMPDIR $INFORMIXDIR/tmp DUMPSHMEM 0 DUMPGCORE 0 DUMPCORE 0 DUMPCNT 1
################################################################### # Alarm Program Configuration Parameters ################################################################### # ALARMPROGRAM - Specifies the alarm program to display event # alarms. To enable automatic logical log backup, # edit alarmprogram.sh and set BACKUPLOGS=Y. # ALRM_ALL_EVENTS - Controls whether the alarm program runs for # every event. Acceptable values are: # 0 Logs only noteworthy events # 1 Logs all events # STORAGE_FULL_ALARM - <time interval in seconds>,<alarm severity> # specifies in what interval: # - a message will be printed to the online.log file # - an alarm will be raised # when # - a dbspace becomes full # (ISAM error -131) # - a partition runs out of pages or extents # (ISAM error -136) # time interval = 0 : OFF # severity = 0 : no alarm, only message # SYSALARMPROGRAM - Specifies the system alarm program triggered # when an AF occurs ###################################################################
ALARMPROGRAM $INFORMIXDIR/etc/alarmprogram.sh ALRM_ALL_EVENTS 0 STORAGE_FULL_ALARM 600,3 SYSALARMPROGRAM $INFORMIXDIR/etc/evidence.sh
################################################################### # RAS Configuration Parameters ################################################################### # RAS_PLOG_SPEED - Technical Support diagnostic parameter. # Do not change; automatically updated. # RAS_LLOG_SPEED - Technical Support diagnostic parameter. # Do not change; automatically updated. ###################################################################
RAS_PLOG_SPEED 4799 RAS_LLOG_SPEED 0
################################################################### # Character Processing Configuration Parameter ################################################################### # EILSEQ_COMPAT_MODE - Controls whether when processing characters, # IDS checks if the characters are valid for # the locale and returns error -202 if they are # not. Acceptable values are: # 0 Return an error for characters that are not # valid (Default) # 1 Allow characters that are not valid ####################################################################
EILSEQ_COMPAT_MODE 0
################################################################### # Statistic Configuration Parameters ################################################################### # QSTATS - Enables (1) or disables (0) the collection of queue # statistics that can be viewed with onstat -g qst # WSTATS - Enables (1) or disables (0) the collection of wait # statistics that can be viewed with onstat -g wst ####################################################################
QSTATS 0 WSTATS 0 ################################################################### # Java Configuration Parameters ################################################################### # VPCLASS jvp - Configures the Java VP. The format is: # VPCLASS jvp,num=<#>[,max=<#>][,aff=<#>][,noage] # JVPJAVAHOME - The JRE root directory # JVPHOME - The Krakatoa installation directory # JVPPROPFILE - The Java VP property file # JVPLOGFILE - The Java VP log file # This parameter is deprecated and is no longer required # JDKVERSION - The version of JDK supported by this server # JVPJAVALIB - The location of the JRE libraries, relative # to JVPJAVAHOME # JVPJAVAVM - The JRE libraries to use for the Java VM # JVPARGS - Configures the Java VM. To display JNI calls, # use JVPARGS -verbose:jni. Separate options with # semicolons. # JVPCLASSPATH - The Java classpath to use. Use krakatoa_g.jar # for debugging. Comment out the JVPCLASSPATH # entry you do not want to use. ###################################################################
#VPCLASS jvp,num=1 JVPJAVAHOME $INFORMIXDIR/extend/krakatoa/jre JVPHOME $INFORMIXDIR/extend/krakatoa JVPPROPFILE $INFORMIXDIR/extend/krakatoa/.jvpprops JVPLOGFILE $INFORMIXDIR/jvp.log #JDKVERSION 1.5 JVPJAVALIB /bin/j9vm JVPJAVAVM jvm #JVPARGS -verbose:jni #JVPCLASSPATH $INFORMIXDIR/extend/krakatoa/krakatoa_g.jar:$INFORMIXDIR/extend/krakatoa/jdbc_g.jar JVPCLASSPATH $INFORMIXDIR/extend/krakatoa/krakatoa.jar:$INFORMIXDIR/extend/krakatoa/jdbc.jar
################################################################### # Buffer pool and LRU Configuration Parameters ################################################################### # BUFFERPOOL - Specifies the default values for buffers and LRU # queues in each buffer pool. Each page size used # by a dbspace has a buffer pool and needs a # BUFFERPOOL entry. The onconfig.std file contains # two initial entries: a default entry from which # to base new page size entries on, and an entry # for the operating system default page size. # When you add a dbspace with a different page size, # IDS adds a BUFFERPOOL entry to the onconfig file # with values that are the same as the default # BUFFERPOOL entry, except that the default # keyword is replaced by size=Nk, where N is the # new page size. With interval checkpoints, these # values can now be set higher than in previous # versions of IDS in an OLTP environment. # AUTO_LRU_TUNING - Enables (1) or disables (0) automatic tuning of # LRU queues. When this parameter is enabled, IDS # increases the LRU flushing if it cannot find low # priority buffers for number page faults. ###################################################################
BUFFERPOOL default,buffers=120000,lrus=8,lru_min_dirty=1.000000,lru_max_dirty=3.000000 BUFFERPOOL size=2K,buffers=200000,lrus=16,lru_min_dirty=1.000000,lru_max_dirty=3.000000 BUFFERPOOL size=4K,buffers=240000,lrus=32,lru_min_dirty=1.000000,lru_max_dirty=3.000000 BUFFERPOOL size=8K,buffers=200000,lrus=8,lru_min_dirty=1.000000,lru_max_dirty=3.000000 AUTO_LRU_TUNING 1 CONVERSION_GUARD 2 RESTORE_POINT_DIR /opt/ids/11.50/FC8/tmp BATCHEDREAD_TABLE 0 RSS_FLOW_CONTROL 0
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [181]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: HDR com placas de rede separadas
Posted by: gerdan@gmail.com (GERDAN SANTOS) - Thu, 27 Oct 2011 09:33:42 EDT
Pessoal obrigado, está sendo de grande valia toda informação que estou obtendo aqui...
Estou com uma máquina só ativa agora... a outra tive que trocar os discos dela... estou aguardando o pessoal de Infra entregar com SO para reinstalar o Informix e depois proceder com a configuração conforme falei...
Qualquer nova duvida, grito aqui...
Vlw Pessoal... Obrigado de verdade!
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [180]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: HDR com placas de rede separadas
Posted by: jairo.gubler@digitro.com.br (Jairo Gubler) - Thu, 27 Oct 2011 07:42:17 EDT
Utilizando portas diferentes pode ficar assim: A0 onsoctcp A0 1525 A1 onsoctcp *A1 1526 B0 onsoctcp B0 1525 B1 onsoctcp *B1 1526
O asterisco é opcional, e faz com que a porta esteja disponível em todas as interfaces de rede da máquina, ou seja, a conexão dos clientes poderia chegar por localhost, A0, A1, A2 e A3 e sempre utilizando o INFORMIXSERVER A1. Observar que a primeira coluna é o INFORMIXSERVER e a terceira é o hostname ou IP da interface de rede, e você pode ou até deve utilizar identificadores diferentes para cada um.
------ Não sei se será o seu caso, mas é muito comum criar uma interface de rede virtual que fica ativa no servidor que é o ativo, dando a opção de ativar no servidor reserva quando este entrar em produção. Ou seja, não é necessário reconfigurar os clientes em caso de uma falha no servidor ativo, mas apenas recriar a interface de rede no servidor que estiver ativo. Observar que a configuração da interface de rede virtual deve ser colocada em alguma script na subida do SO ou após identificar qual é o servidor ativo.
Exemplo: Nos seus clientes você pode configurar como servidor: INFORMIXSERVER=PRODUCAO (é só um exemplo) IP: 1.0.0.10 Porta: 1526
Nos dois servidores você acrescenta a configuração para PRODUCAO sqlhosts (A) PRODUCAO onsoctcp *A1 1526 A0 onsoctcp A0 1525 B0 onsoctcp B0 1525
sqlhosts (B) PRODUCAO onsoctcp *B1 1526 A0 onsoctcp A0 1525 B0 onsoctcp B0 1525
onconfig (A)
DBSERVERNAME A0 DBSERVERALIASES PRODUCAO
onconfig (B)
DBSERVERNAME A1 DBSERVERALIASES PRODUCAO
No servidor ativo você cria a interface virtual (alias): ifconfig *eth1:0 *10.0.0.10
Em 27/10/2011 09:55, Alexandre Marini escreveu: > Olá. > Eu sugiro implementar conexão segura entre os servidores da replicação > HDR, e separar uma ou mais portas diferentes (com serviços diferentes, > claro), > para todas as interfaces de rede que você quer utilizar para acesso ao > informix. > > Esta página fala alguns métodos, mas é bem básica, se tiver maiores > dúvidas pergunte-nos e podemos ajudá-lo a resolver, ok? > > http://publib.boulder.ibm.com/infocenter/idshelp/v117/topic/com.ibm.admin.doc/ids_admin_0194.htm?resultof=%22%6d%75%6c%74%69%70%6c%65%22%20%22%6d%75%6c%74%69%70%6c%22%20%22%6e%65%74%77%6f%72%6b%22%20 > > Att > > Em 27/10/2011 06:29, Jairo Gubler escreveu: >> Copiando a resposta para a lista.... >> >> Utilizei HDR apenas 1 vez e na versão 9 (faz tempo), mas de qualquer
>> forma seguem algumas sugestões: >> >> 1) Arquivos $INFORMIXDIR/etc/sqlhosts (as portas e nomes dos hosts >> >> ficam a seu critério): >> >> A0 onsoctcp A0 1525 >> >> A1 onsoctcp A1 1525 >> >> B0 onsoctcp B0 1525 >> >> B1 onsoctcp B1 1525 >> >> 2) Arquivos $INFORMIXDIR/etc/onconfig >> >> No servidor A: >> >> DBSERVERNAME A0 # Name of default database server >> >> DBSERVERALIASES A1 # List of alternate dbservernames >> >> No servidor B: >> >> DBSERVERNAME B0 # Name of default database server >> >> DBSERVERALIASES B1 # List of alternate dbservernames >> >> A configuração de HDR deve ser realizada utilizando INFORMIXSERVER A0 >> >> e B0, portanto a variável de ambiente INFORMIXSERVER deve estar com os >> >> valores A0 e B0 (servidor A e B, respectivamente). >> >> Os clientes devem conectar via INFORMIXSERVER A1 e B1. >> >> ______________________________________________________________________ >> >> Se tiver alguma dúvida sobre como configurar HDR, posso passar algumas >> >> dicas depois (se é que ainda valem na versão 11). >> >> Depois dê um retorno indicando se funcionou ou não. >> >> Jairo Gubler >> >> Em 26/10/2011 22:39, GERDAN SANTOS escreveu: >> >> Prezados, preciso fazer o seguinte >> >> Server A - tem 4 interfaces de rede - R900 Pri - Online >> >> Server B - tem 4 interfaces de rede - R900 Sec - Read >> >> Hoje está configurado um HDR utilizando apenas 1 interface em cada máquina ou >> >> seja todo trafego de requisições ao banco + trafego de pri para slave executam >> >> em apenas uma interface de rede (Sobrando assim 3 interfaces em cada máquina). >> >> Gostaria de saber como poderia configurar a replicação para que funciona-se >> >> assim: >> >> Sendo: >> >> A0 - interface 0 - Server A - Pri - IP 1.0.0.1 >> >> A1 - interface 1 - Server A - Pri - IP 1.0.0.2 >> >> A2 - interface 2 - Server A - Pri - IP 1.0.0.3 >> >> A3 - interface 3 - Server A - Pri - IP 1.0.0.4 >> >> Sendo >> >> B0 - interface 0 - Server B - Read - IP 1.0.0.5 >> >> B1 - interface 1 - Server B - Read - IP 1.0.0.6 >> >> B2 - interface 2 - Server B - Read - IP 1.0.0.7 >> >> B3 - interface 3 - Server B - Read - IP 1.0.0.8 >> >> Fosse utilizada para os processos de comunicação da replicação (Pri x Sec) as >> >> interfaces A0 e B0. >> >> Para atender as requisições as interfaces A1 e B1. >> >> Com isso ganharia em performance, pois teria interfaces de redes >> >> independentes. >> >> Porém como nunca fiz isto, não sei ainda como poderia realizar tal tarefa... >> >> Alguém pode repassar o conhecimento se há como cumprir tal esquema. >> >> Desde já muito agradeço a todos. >> >> Gerdan Santos. >> >> >> >> >> >> >> >> >> >> >> > > > -- > > Alexandre Marini > > Tecnologia da Informação - DBA > > SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix > > <Cert-Info-Mgmt_color.jpg> > > IBM Certified System Administrator - Informix Dynamic Server V10 / V11 > / V11.70 > > IBM Information Management Informix Technical Professional v3 >
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [179]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: HDR com placas de rede separadas
Posted by: amarini@fazenda.ms.gov.br (Alexandre Marini) - Thu, 27 Oct 2011 06:55:55 EDT
Olá. Eu sugiro implementar conexão segura entre os servidores da replicação HDR, e separar uma ou mais portas diferentes (com serviços diferentes, claro), para todas as interfaces de rede que você quer utilizar para acesso ao informix.
Esta página fala alguns métodos, mas é bem básica, se tiver maiores dúvidas pergunte-nos e podemos ajudá-lo a resolver, ok?
http://publib.boulder.ibm.com/infocenter/idshelp/v117/topic/com.ibm.admin.doc/ids_admin_0194.htm?resultof=%22%6d%75%6c%74%69%70%6c%65%22%20%22%6d%75%6c%74%69%70%6c%22%20%22%6e%65%74%77%6f%72%6b%22%20
Att
Em 27/10/2011 06:29, Jairo Gubler escreveu: > Copiando a resposta para a lista.... > > Utilizei HDR apenas 1 vez e na versão 9 (faz tempo), mas de qualquer > > forma seguem algumas sugestões: > > 1) Arquivos $INFORMIXDIR/etc/sqlhosts (as portas e nomes dos hosts > > ficam a seu critério): > > A0 onsoctcp A0 1525 > > A1 onsoctcp A1 1525 > > B0 onsoctcp B0 1525 > > B1 onsoctcp B1 1525 > > 2) Arquivos $INFORMIXDIR/etc/onconfig > > No servidor A: > > DBSERVERNAME A0 # Name of default database server > > DBSERVERALIASES A1 # List of alternate dbservernames > > No servidor B: > > DBSERVERNAME B0 # Name of default database server > > DBSERVERALIASES B1 # List of alternate dbservernames > > A configuração de HDR deve ser realizada utilizando INFORMIXSERVER A0 > > e B0, portanto a variável de ambiente INFORMIXSERVER deve estar com os > > valores A0 e B0 (servidor A e B, respectivamente). > > Os clientes devem conectar via INFORMIXSERVER A1 e B1. > > ______________________________________________________________________ > > Se tiver alguma dúvida sobre como configurar HDR, posso passar algumas > > dicas depois (se é que ainda valem na versão 11). > > Depois dê um retorno indicando se funcionou ou não. > > Jairo Gubler > > Em 26/10/2011 22:39, GERDAN SANTOS escreveu: > > Prezados, preciso fazer o seguinte > > Server A - tem 4 interfaces de rede - R900 Pri - Online > > Server B - tem 4 interfaces de rede - R900 Sec - Read > > Hoje está configurado um HDR utilizando apenas 1 interface em cada máquina ou > > seja todo trafego de requisições ao banco + trafego de pri para slave executam > > em apenas uma interface de rede (Sobrando assim 3 interfaces em cada máquina). > > Gostaria de saber como poderia configurar a replicação para que funciona-se > > assim: > > Sendo: > > A0 - interface 0 - Server A - Pri - IP 1.0.0.1 > > A1 - interface 1 - Server A - Pri - IP 1.0.0.2 > > A2 - interface 2 - Server A - Pri - IP 1.0.0.3 > > A3 - interface 3 - Server A - Pri - IP 1.0.0.4 > > Sendo > > B0 - interface 0 - Server B - Read - IP 1.0.0.5 > > B1 - interface 1 - Server B - Read - IP 1.0.0.6 > > B2 - interface 2 - Server B - Read - IP 1.0.0.7 > > B3 - interface 3 - Server B - Read - IP 1.0.0.8 > > Fosse utilizada para os processos de comunicação da replicação (Pri x Sec) as > > interfaces A0 e B0. > > Para atender as requisições as interfaces A1 e B1. > > Com isso ganharia em performance, pois teria interfaces de redes > > independentes. > > Porém como nunca fiz isto, não sei ainda como poderia realizar tal tarefa... > > Alguém pode repassar o conhecimento se há como cumprir tal esquema. > > Desde já muito agradeço a todos. > > Gerdan Santos. > > > > > > > > > > >
--
Alexandre Marini
Tecnologia da Informação - DBA
SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix
<Cert-Info-Mgmt_color.jpg>
IBM Certified System Administrator - Informix Dynamic Server V10 / V11 / V11.70
IBM Information Management Informix Technical Professional v3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [178]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
AO ADMIN DA LISTA
Posted by: cesar_inacio_martins@yahoo.com.br (Cesar Inacio Martins) - Thu, 27 Oct 2011 06:44:27 EDT
Configurar para que as respostas sejam automaticas para lista....
As respostas estão indo para o autor da mensagem, assim ninguém compartilha conhecimento!!!!!!!!!!!!!!1
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [177]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: HDR com placas de rede separadas
Posted by: jairo.gubler@digitro.com.br (Jairo Gubler) - Thu, 27 Oct 2011 06:29:27 EDT
Copiando a resposta para a lista....
Utilizei HDR apenas 1 vez e na versão 9 (faz tempo), mas de qualquer
forma seguem algumas sugestões:
1) Arquivos $INFORMIXDIR/etc/sqlhosts (as portas e nomes dos hosts
ficam a seu critério):
A0 onsoctcp A0 1525
A1 onsoctcp A1 1525
B0 onsoctcp B0 1525
B1 onsoctcp B1 1525
2) Arquivos $INFORMIXDIR/etc/onconfig
No servidor A:
DBSERVERNAME A0 # Name of default database server
DBSERVERALIASES A1 # List of alternate dbservernames
No servidor B:
DBSERVERNAME B0 # Name of default database server
DBSERVERALIASES B1 # List of alternate dbservernames
A configuração de HDR deve ser realizada utilizando INFORMIXSERVER A0
e B0, portanto a variável de ambiente INFORMIXSERVER deve estar com os
valores A0 e B0 (servidor A e B, respectivamente).
Os clientes devem conectar via INFORMIXSERVER A1 e B1.
______________________________________________________________________
Se tiver alguma dúvida sobre como configurar HDR, posso passar algumas
dicas depois (se é que ainda valem na versão 11).
Depois dê um retorno indicando se funcionou ou não.
Jairo Gubler
Em 26/10/2011 22:39, GERDAN SANTOS escreveu:
Prezados, preciso fazer o seguinte
Server A - tem 4 interfaces de rede - R900 Pri - Online
Server B - tem 4 interfaces de rede - R900 Sec - Read
Hoje está configurado um HDR utilizando apenas 1 interface em cada máquina ou
seja todo trafego de requisições ao banco + trafego de pri para slave executam
em apenas uma interface de rede (Sobrando assim 3 interfaces em cada máquina).
Gostaria de saber como poderia configurar a replicação para que funciona-se
assim:
Sendo:
A0 - interface 0 - Server A - Pri - IP 1.0.0.1
A1 - interface 1 - Server A - Pri - IP 1.0.0.2
A2 - interface 2 - Server A - Pri - IP 1.0.0.3
A3 - interface 3 - Server A - Pri - IP 1.0.0.4
Sendo
B0 - interface 0 - Server B - Read - IP 1.0.0.5
B1 - interface 1 - Server B - Read - IP 1.0.0.6
B2 - interface 2 - Server B - Read - IP 1.0.0.7
B3 - interface 3 - Server B - Read - IP 1.0.0.8
Fosse utilizada para os processos de comunicação da replicação (Pri x Sec) as
interfaces A0 e B0.
Para atender as requisições as interfaces A1 e B1.
Com isso ganharia em performance, pois teria interfaces de redes
independentes.
Porém como nunca fiz isto, não sei ainda como poderia realizar tal tarefa...
Alguém pode repassar o conhecimento se há como cumprir tal esquema.
Desde já muito agradeço a todos.
Gerdan Santos.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [176]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: HDR com placas de rede separadas
Posted by: gerdan@gmail.com (GERDAN SANTOS) - Wed, 26 Oct 2011 20:40:48 EDT
Há, esqueci de dizer... Estou utilizando RED HAT 5, informix ultimate 11.50FC8.
Aguardo apoio...
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [175]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
HDR com placas de rede separadas
Posted by: gerdan@gmail.com (GERDAN SANTOS) - Wed, 26 Oct 2011 20:39:30 EDT
Prezados, preciso fazer o seguinte
Server A - tem 4 interfaces de rede - R900 Pri - Online Server B - tem 4 interfaces de rede - R900 Sec - Read
Hoje está configurado um HDR utilizando apenas 1 interface em cada máquina ou seja todo trafego de requisições ao banco + trafego de pri para slave executam em apenas uma interface de rede (Sobrando assim 3 interfaces em cada máquina).
Gostaria de saber como poderia configurar a replicação para que funciona-se assim:
Sendo: A0 - interface 0 - Server A - Pri - IP 1.0.0.1 A1 - interface 1 - Server A - Pri - IP 1.0.0.2 A2 - interface 2 - Server A - Pri - IP 1.0.0.3 A3 - interface 3 - Server A - Pri - IP 1.0.0.4
Sendo B0 - interface 0 - Server B - Read - IP 1.0.0.5 B1 - interface 1 - Server B - Read - IP 1.0.0.6 B2 - interface 2 - Server B - Read - IP 1.0.0.7 B3 - interface 3 - Server B - Read - IP 1.0.0.8
Fosse utilizada para os processos de comunicação da replicação (Pri x Sec) as interfaces A0 e B0. Para atender as requisições as interfaces A1 e B1.
Com isso ganharia em performance, pois teria interfaces de redes independentes.
Porém como nunca fiz isto, não sei ainda como poderia realizar tal tarefa... Alguém pode repassar o conhecimento se há como cumprir tal esquema.
Desde já muito agradeço a todos. Gerdan Santos.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [174]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Estouro de arquivo temporário - Chunk
Posted by: rafael@relato.com.br (RAFAEL LIMA) - Wed, 05 Oct 2011 09:39:51 EDT
Bom dia, tudo ok?
Sobre os comentários e procedimentos sugeridos, tentarei aplicar amanhã, pois irei visitar ao cliente.
Pelo que entendi, será bom mudar estes parâmetros no onconfig:
DS_NONPDQ_QUERY_MEM 128 Este parâmetro está como 128Kb, isso é pouco? Poderiamos aumentar? Se sim, para quanto recomendam?
IFX_FOLDVIEW 0 Devo mudar este parâmetro para 1, correto? Só uma dúvida, para que ele serve? Pois com certeza o cliente me perguntará...
STMT_CACHE 0 STMT_CACHE_HITS 0 STMT_CACHE_SIZE 512 STMT_CACHE_NOLIMIT 0 STMT_CACHE_NUMPOOL 1 Esses parâmetros acho que estão corretos né, pois não deve estar ativo este cache mesmo, certo?
Outra coisa importante que confirmei com o cliente agora, é que a área que estoura é outra, então talvez resolvesse aumentando ela um pouco?
15d4951c0 1 1 0 500000 495687 PO-B- /banco/prd/prd_root.000
Dei este comando (onstat -c | grep prd_root) para ver onde foi configurada esta área e me retornou isso: ROOTNAME prd_root ROOTPATH /banco/prd/prd_root.000
Outros pontos que podem ser relevantes, a propósito acredito que a VIEW não está 100% correta, pois quem a desenvolveu não foi um DBA, apenas um analista programador.
URL de conexão Java (utilizando componente Hibernate):
hibernate.connection.url jdbc:informix-sqli://192.168.0.221:1550:informixserver=ol_prd;user=informix;password=informix;database=logix
Código fonte de uma das views:
create view vw_devolucao ( cod_empresa, den_empresa, num_nff, ser_nff, subserie_nf, dat_emissao, cod_tip_carteira, den_tip_carteira, cod_tip_venda, den_tip_venda, cod_nat_oper, den_nat_oper, ies_emite_dupl, pct_comis, ies_frete, num_seq_nf, dat_emissao_nf, num_pedido, cod_moeda, cod_cliente, nom_cliente, nom_reduzido, num_telex, cod_tip_cli, den_tip_cli, cod_cidade_cli, den_cidade_cli, cod_uni_feder_cli, cod_transpor, cod_fiscal_item, cod_local_estoq, num_nff_origem, ser_nff_origem, subserie_nf_origem, cod_fornecedor, raz_social_forn, raz_social_reduz_forn, num_cgc_cpf_forn, cod_repres, raz_social, num_cgc, nom_guerra, cod_cidade_rep, den_cidade_rep, cod_uni_feder_rep, dat_entrada_nf, num_aviso_rec, num_seq, cod_item, den_item, den_item_reduz, cod_unid_med, cod_familia, den_familia, gru_ctr_estoq, den_gru_ctr_estoq, cod_seg_merc, den_bitola, den_lance, qtd_item, pes_unit, peso_total, val_liquido_item, val_merc_item, val_contab_item, val_acresc_item, val_acre_merc, val_acresc_contab, val_frete_cliente, val_seguro_cliente, val_fret_consig, val_segr_consig, val_ipi, val_icms, val_icms_st, val_pis, val_cofins, val_despesa_aces_i, val_tot_icms_nf_d, ies_especie_nf, ies_origem_nff ) as select distinct empresa.cod_empresa, empresa.den_empresa, nf_sup.num_nf, nf_sup.ser_nf, nf_sup.ssr_nf, nf_sup.dat_entrada_nf, tipo_carteira.cod_tip_carteira, tipo_carteira.den_tip_carteira, tipo_venda.cod_tip_venda, tipo_venda.den_tip_venda, nat_operacao.cod_nat_oper, nat_operacao.den_nat_oper, nat_operacao.ies_emite_dupl, fat_nf_repr.pct_comissao as pct_comis, CAST (fat_nf_mestre.tip_frete as decimal(1,0)) as ies_tip_frete, fat_nf_item.seq_item_nf, CAST(fat_nf_mestre.dat_hor_emissao as date) as dat_emissao_nf, pedidos.num_pedido, pedidos.cod_moeda, clientes.cod_cliente, clientes.nom_cliente, clientes.nom_reduzido, clientes.num_telex, tipo_cliente.cod_tip_cli, tipo_cliente.den_tip_cli, cidades.cod_cidade as cod_cidade_cli, cidades.den_cidade as den_cidade_cli, cidades.cod_uni_feder as cod_uni_feder_cli, nf_sup.cod_transpor, aviso_rec.cod_fiscal_item, aviso_rec.cod_local_estoq, fat_nf_mestre.nota_fiscal, fat_nf_mestre.serie_nota_fiscal, fat_nf_mestre.subserie_nf, fornecedor.cod_fornecedor, fornecedor.raz_social, fornecedor.raz_social_reduz, fornecedor.num_cgc_cpf, representante.cod_repres, representante.raz_social, representante.num_cgc, representante.nom_guerra, cidrepr.cod_cidade as cod_cidade_rep, cidrepr.den_cidade as den_cidade_rep, cidrepr.cod_uni_feder as cod_uni_feder_rep, nf_sup.dat_entrada_nf, aviso_rec.num_aviso_rec, aviso_rec.num_seq, itemx.cod_item, itemx.den_item, itemx.den_item_reduz, itemx.cod_unid_med, familia.cod_familia, familia.den_familia, grupo_ctr_estoq.gru_ctr_estoq, grupo_ctr_estoq.den_gru_ctr_estoq, itemx.cod_seg_merc, bitolas.des_inf_tecnica as den_bitola, lance.des_inf_tecnica as den_lance, aviso_rec.qtd_declarad_nf, itemx.pes_unit, (aviso_rec.qtd_declarad_nf*itemx.pes_unit) as peso_total, aviso_rec.val_liquido_item, (aviso_rec.val_liquido_item-aviso_rec.val_despesa_aces_i) as val_merc_item, aviso_rec.val_contabil_item, 0.00 as val_acresc_item, 0.00 as val_acre_merc, 0.00 as val_acresc_contab, 0.00 as val_frete_cliente, 0.00 as val_seguro_cliente, 0.00 as val_fret_consig, 0.00 as val_segr_consig, (aviso_rec.val_ipi_decl_item + aviso_rec.val_ipi_desp_aces) as val_ipi, aviso_rec.val_icms_item_d as val_icms, ar_subst_tribut.val_icms_dev_ret as val_icms_st, DECODE(ar_pis_cofins.val_pis_d,null,0.00,ar_pis_cofins.val_pis_d) as val_pis, DECODE(ar_pis_cofins.val_cofins_d,null,0.00,ar_pis_cofins.val_cofins_d) as val_cofins, aviso_rec.val_despesa_aces_i, nf_sup.val_tot_icms_nf_d, nf_sup.ies_especie_nf, fat_nf_mestre.origem_nota_fiscal from aviso_rec INNER join nf_sup nf_sup on (
nf_sup.cod_empresa = aviso_rec.cod_empresa
AND nf_sup.num_aviso_rec = aviso_rec.num_aviso_rec ) inner join empresa on empresa.cod_empresa = nf_sup.cod_empresa INNER join sup_nf_devol_cli on (
sup_nf_devol_cli.empresa = aviso_rec.cod_empresa
AND sup_nf_devol_cli.aviso_recebto = aviso_rec.num_aviso_rec
and sup_nf_devol_cli.seq_aviso_recebto = aviso_rec.num_seq ) INNER join fat_nf_mestre on (
aviso_rec.cod_empresa = fat_nf_mestre.empresa
and sup_nf_devol_cli.nota_fiscal_fatura = fat_nf_mestre.nota_fiscal )
left outer join fat_nf_item on fat_nf_item.empresa = fat_nf_mestre.empresa and fat_nf_item.trans_nota_fiscal = fat_nf_mestre.trans_nota_fiscal and fat_nf_item.seq_item_nf = sup_nf_devol_cli.seq_nf_fatura
left outer join ar_subst_tribut on ar_subst_tribut.cod_empresa = aviso_rec.cod_empresa and ar_subst_tribut.num_aviso_rec = aviso_rec.num_aviso_rec and ar_subst_tribut.num_seq = aviso_rec.num_seq
left outer join ar_pis_cofins on ar_pis_cofins.cod_empresa = aviso_rec.cod_empresa and ar_pis_cofins.num_aviso_rec = aviso_rec.num_aviso_rec and ar_pis_cofins.num_seq = aviso_rec.num_seq
INNER JOIN fornecedor on (fornecedor.cod_fornecedor = nf_sup.cod_fornecedor)
INNER join pedidos on (
pedidos.cod_empresa = aviso_rec.cod_empresa
and pedidos.num_pedido = sup_nf_devol_cli.ped_nf_fatura ) INNER join nat_operacao on nat_operacao.cod_nat_oper = fat_nf_mestre.natureza_operacao INNER join item itemx on (
itemx.cod_item = aviso_rec.cod_item
and aviso_rec.cod_empresa = itemx.cod_empresa ) INNER JOIN clientes on (pedidos.cod_cliente = clientes.cod_cliente) left outer join fat_nf_repr on fat_nf_repr.empresa = fat_nf_mestre.empresa and fat_nf_repr.trans_nota_fiscal = fat_nf_mestre.trans_nota_fiscal and fat_nf_repr.seq_representante = 1 left outer join representante representante on fat_nf_repr.representante = representante.cod_repres
left outer join familia on itemx.cod_familia = familia.cod_familia and aviso_rec.cod_empresa = familia.cod_empresa left outer join grupo_ctr_estoq on itemx.gru_ctr_estoq = grupo_ctr_estoq.gru_ctr_estoq and aviso_rec.cod_empresa = grupo_ctr_estoq.cod_empresa left outer join info_tecnicas bitolas on bitolas.cod_compon = itemx.cod_item and bitolas.cod_empresa = itemx.cod_empresa and bitolas.num_seq = 2 and bitolas.cod_pdr_info_tec = 900 left outer join pdr_info_tec on pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec left outer join it_pdr_info_tec on it_pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec and it_pdr_info_tec.num_seq = bitolas.num_seq left outer join info_tecnicas lance on lance.cod_compon = itemx.cod_item and lance.cod_empresa = itemx.cod_empresa and lance.num_seq = 3 and lance.cod_pdr_info_tec = 900 left outer join pdr_info_tec pdr_lance on pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec left outer join it_pdr_info_tec it_pdr_lance on it_pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec and it_pdr_lance.num_seq = lance.num_seq left outer join tipo_venda on tipo_venda.cod_tip_venda = pedidos.cod_tip_venda left outer join tipo_cliente tipo_cliente on clientes.cod_tip_cli = tipo_cliente.cod_tip_cli left outer join cidades cidades on clientes.cod_cidade = cidades.cod_cidade left outer join tipo_carteira tipo_carteira on fat_nf_mestre.tip_carteira = tipo_carteira.cod_tip_carteira left outer join cidades cidrepr on representante.cod_cidade = cidrepr.cod_cidade where nat_operacao.ies_emite_dupl = 'S' UNION ALL select distinct empresa.cod_empresa, empresa.den_empresa, nf_sup.num_nf, nf_sup.ser_nf, nf_sup.ssr_nf, nf_sup.dat_entrada_nf, tipo_carteira.cod_tip_carteira, tipo_carteira.den_tip_carteira, tipo_venda.cod_tip_venda, tipo_venda.den_tip_venda, nat_operacao.cod_nat_oper, nat_operacao.den_nat_oper, nat_operacao.ies_emite_dupl, fat_nf_repr_hist.pct_comissao as pct_comis, CAST (fat_nf_mestre_hist.tip_frete as decimal(1,0)) as ies_tip_frete, fat_nf_item_hist.seq_item_nf, CAST(fat_nf_mestre_hist.dat_hor_emissao as date) as dat_emissao_nf, pedidos.num_pedido, pedidos.cod_moeda, clientes.cod_cliente, clientes.nom_cliente, clientes.nom_reduzido, clientes.num_telex, tipo_cliente.cod_tip_cli, tipo_cliente.den_tip_cli, cidades.cod_cidade as cod_cidade_cli, cidades.den_cidade as den_cidade_cli, cidades.cod_uni_feder as cod_uni_feder_cli, nf_sup.cod_transpor, aviso_rec.cod_fiscal_item, aviso_rec.cod_local_estoq, fat_nf_mestre_hist.nota_fiscal, fat_nf_mestre_hist.serie_nota_fiscal, fat_nf_mestre_hist.subserie_nf, fornecedor.cod_fornecedor, fornecedor.raz_social, fornecedor.raz_social_reduz, fornecedor.num_cgc_cpf, representante.cod_repres, representante.raz_social, representante.num_cgc, representante.nom_guerra, cidrepr.cod_cidade as cod_cidade_rep, cidrepr.den_cidade as den_cidade_rep, cidrepr.cod_uni_feder as cod_uni_feder_rep, nf_sup.dat_entrada_nf, aviso_rec.num_aviso_rec, aviso_rec.num_seq, itemx.cod_item, itemx.den_item, itemx.den_item_reduz, itemx.cod_unid_med, familia.cod_familia, familia.den_familia, grupo_ctr_estoq.gru_ctr_estoq, grupo_ctr_estoq.den_gru_ctr_estoq, itemx.cod_seg_merc, bitolas.des_inf_tecnica as den_bitola, lance.des_inf_tecnica as den_lance, aviso_rec.qtd_declarad_nf, itemx.pes_unit, (aviso_rec.qtd_declarad_nf*itemx.pes_unit) as peso_total, aviso_rec.val_liquido_item, (aviso_rec.val_liquido_item-aviso_rec.val_despesa_aces_i) as val_merc_item, aviso_rec.val_contabil_item, 0.00 as val_acresc_item, 0.00 as val_acre_merc, 0.00 as val_acresc_contab, 0.00 as val_frete_cliente, 0.00 as val_seguro_cliente, 0.00 as val_fret_consig, 0.00 as val_segr_consig, (aviso_rec.val_ipi_decl_item + aviso_rec.val_ipi_desp_aces) as val_ipi, aviso_rec.val_icms_item_d as val_icms, ar_subst_tribut.val_icms_dev_ret as val_icms_st, DECODE(ar_pis_cofins.val_pis_d,null,0.00,ar_pis_cofins.val_pis_d) as val_pis, DECODE(ar_pis_cofins.val_cofins_d,null,0.00,ar_pis_cofins.val_cofins_d) as val_cofins, aviso_rec.val_despesa_aces_i, nf_sup.val_tot_icms_nf_d, nf_sup.ies_especie_nf, fat_nf_mestre_hist.origem_nota_fiscal from aviso_rec INNER join nf_sup nf_sup on (
nf_sup.cod_empresa = aviso_rec.cod_empresa
AND nf_sup.num_aviso_rec = aviso_rec.num_aviso_rec ) inner join empresa on empresa.cod_empresa = nf_sup.cod_empresa INNER join sup_nf_devol_cli on (
sup_nf_devol_cli.empresa = aviso_rec.cod_empresa
AND sup_nf_devol_cli.aviso_recebto = aviso_rec.num_aviso_rec
and sup_nf_devol_cli.seq_aviso_recebto = aviso_rec.num_seq ) INNER join fat_nf_mestre_hist on (
aviso_rec.cod_empresa = fat_nf_mestre_hist.empresa
and sup_nf_devol_cli.nota_fiscal_fatura = fat_nf_mestre_hist.nota_fiscal )
left outer join fat_nf_item_hist on fat_nf_item_hist.empresa = fat_nf_mestre_hist.empresa and fat_nf_item_hist.trans_nota_fiscal = fat_nf_mestre_hist.trans_nota_fiscal and fat_nf_item_hist.seq_item_nf = sup_nf_devol_cli.seq_nf_fatura
left outer join ar_subst_tribut on ar_subst_tribut.cod_empresa = aviso_rec.cod_empresa and ar_subst_tribut.num_aviso_rec = aviso_rec.num_aviso_rec and ar_subst_tribut.num_seq = aviso_rec.num_seq
left outer join ar_pis_cofins on ar_pis_cofins.cod_empresa = aviso_rec.cod_empresa and ar_pis_cofins.num_aviso_rec = aviso_rec.num_aviso_rec and ar_pis_cofins.num_seq = aviso_rec.num_seq
INNER JOIN fornecedor on (fornecedor.cod_fornecedor = nf_sup.cod_fornecedor) INNER join pedidos on (
pedidos.cod_empresa = aviso_rec.cod_empresa
and pedidos.num_pedido = sup_nf_devol_cli.ped_nf_fatura ) INNER join nat_operacao on nat_operacao.cod_nat_oper = fat_nf_mestre_hist.natureza_operacao INNER join item itemx on (
itemx.cod_item = aviso_rec.cod_item
and aviso_rec.cod_empresa = itemx.cod_empresa ) INNER JOIN clientes on (pedidos.cod_cliente = clientes.cod_cliente) left outer join fat_nf_repr_hist on fat_nf_repr_hist.empresa = fat_nf_mestre_hist.empresa and fat_nf_repr_hist.trans_nota_fiscal = fat_nf_mestre_hist.trans_nota_fiscal and fat_nf_repr_hist.seq_representante = 1 left outer join representante representante on fat_nf_repr_hist.representante = representante.cod_repres left outer join familia on itemx.cod_familia = familia.cod_familia and aviso_rec.cod_empresa = familia.cod_empresa left outer join grupo_ctr_estoq on itemx.gru_ctr_estoq = grupo_ctr_estoq.gru_ctr_estoq and aviso_rec.cod_empresa = grupo_ctr_estoq.cod_empresa left outer join info_tecnicas bitolas on bitolas.cod_compon = itemx.cod_item and bitolas.cod_empresa = itemx.cod_empresa and bitolas.num_seq = 2 and bitolas.cod_pdr_info_tec = 900 left outer join pdr_info_tec on pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec left outer join it_pdr_info_tec on it_pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec and it_pdr_info_tec.num_seq = bitolas.num_seq left outer join info_tecnicas lance on lance.cod_compon = itemx.cod_item and lance.cod_empresa = itemx.cod_empresa and lance.num_seq = 3 and lance.cod_pdr_info_tec = 900 left outer join pdr_info_tec pdr_lance on pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec left outer join it_pdr_info_tec it_pdr_lance on it_pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec and it_pdr_lance.num_seq = lance.num_seq left outer join tipo_venda on tipo_venda.cod_tip_venda = pedidos.cod_tip_venda left outer join tipo_cliente tipo_cliente on clientes.cod_tip_cli = tipo_cliente.cod_tip_cli left outer join cidades cidades on clientes.cod_cidade = cidades.cod_cidade left outer join tipo_carteira tipo_carteira on fat_nf_mestre_hist.tip_carteira = tipo_carteira.cod_tip_carteira left outer join cidades cidrepr on representante.cod_cidade = cidrepr.cod_cidade where nat_operacao.ies_emite_dupl = 'S' UNION ALL select distinct empresa.cod_empresa, empresa.den_empresa, nf_sup.num_nf, nf_sup.ser_nf, nf_sup.ssr_nf, nf_sup.dat_entrada_nf, tipo_carteira.cod_tip_carteira, tipo_carteira.den_tip_carteira, tipo_venda.cod_tip_venda, tipo_venda.den_tip_venda, nat_operacao.cod_nat_oper, nat_operacao.den_nat_oper, nat_operacao.ies_emite_dupl, nf_mestre.pct_comis, nf_mestre.ies_frete, nf_item.num_sequencia, nf_mestre.dat_emissao, pedidos.num_pedido, pedidos.cod_moeda, clientes.cod_cliente, clientes.nom_cliente, clientes.nom_reduzido, clientes.num_telex, tipo_cliente.cod_tip_cli, tipo_cliente.den_tip_cli, cidades.cod_cidade as cod_cidade_cli, cidades.den_cidade as den_cidade_cli, cidades.cod_uni_feder as cod_uni_feder_cli, nf_sup.cod_transpor, aviso_rec.cod_fiscal_item, aviso_rec.cod_local_estoq, nf_mestre.num_nff, nf_mestre.ser_nff, 0 as subserie_nf, fornecedor.cod_fornecedor, fornecedor.raz_social, fornecedor.raz_social_reduz, fornecedor.num_cgc_cpf, representante.cod_repres, representante.raz_social, representante.num_cgc, representante.nom_guerra, cidrepr.cod_cidade as cod_cidade_rep, cidrepr.den_cidade as den_cidade_rep, cidrepr.cod_uni_feder as cod_uni_feder_rep, nf_sup.dat_entrada_nf, aviso_rec.num_aviso_rec, aviso_rec.num_seq, itemx.cod_item, itemx.den_item, itemx.den_item_reduz, itemx.cod_unid_med, familia.cod_familia, familia.den_familia, grupo_ctr_estoq.gru_ctr_estoq, grupo_ctr_estoq.den_gru_ctr_estoq, itemx.cod_seg_merc, bitolas.des_inf_tecnica as den_bitola, lance.des_inf_tecnica as den_lance, aviso_rec.qtd_declarad_nf, itemx.pes_unit, (aviso_rec.qtd_declarad_nf*itemx.pes_unit) as peso_total, aviso_rec.val_liquido_item, (aviso_rec.val_liquido_item-aviso_rec.val_despesa_aces_i) as val_merc_item, aviso_rec.val_contabil_item, 0.00 as val_acresc_item, 0.00 as val_acre_merc, 0.00 as val_acresc_contab, 0.00 as val_frete_cliente, 0.00 as val_seguro_cliente, 0.00 as val_fret_consig, 0.00 as val_segr_consig, (aviso_rec.val_ipi_decl_item + aviso_rec.val_ipi_desp_aces) as val_ipi, aviso_rec.val_icms_item_d as val_icms, ar_subst_tribut.val_icms_dev_ret as val_icms_st, DECODE(ar_pis_cofins.val_pis_d,null,0.00,ar_pis_cofins.val_pis_d) as val_pis, DECODE(ar_pis_cofins.val_cofins_d,null,0.00,ar_pis_cofins.val_cofins_d) as val_cofins, aviso_rec.val_despesa_aces_i, nf_sup.val_tot_icms_nf_d, nf_sup.ies_especie_nf, nf_mestre.ies_origem from aviso_rec INNER join nf_sup nf_sup on (
nf_sup.cod_empresa = aviso_rec.cod_empresa
AND nf_sup.num_aviso_rec = aviso_rec.num_aviso_rec ) inner join empresa on empresa.cod_empresa = nf_sup.cod_empresa INNER join sup_nf_devol_cli on (
sup_nf_devol_cli.empresa = aviso_rec.cod_empresa
AND sup_nf_devol_cli.aviso_recebto = aviso_rec.num_aviso_rec
and sup_nf_devol_cli.seq_aviso_recebto = aviso_rec.num_seq ) INNER join nf_mestre on (
aviso_rec.cod_empresa = nf_mestre.cod_empresa
and sup_nf_devol_cli.nota_fiscal_fatura = nf_mestre.num_nff )
left outer join nf_item on nf_item.cod_empresa = nf_mestre.cod_empresa and nf_item.num_nff = sup_nf_devol_cli.nota_fiscal_fatura and nf_item.num_sequencia = sup_nf_devol_cli.seq_nf_fatura
left outer join ar_subst_tribut on ar_subst_tribut.cod_empresa = aviso_rec.cod_empresa and ar_subst_tribut.num_aviso_rec = aviso_rec.num_aviso_rec and ar_subst_tribut.num_seq = aviso_rec.num_seq
left outer join ar_pis_cofins on ar_pis_cofins.cod_empresa = aviso_rec.cod_empresa and ar_pis_cofins.num_aviso_rec = aviso_rec.num_aviso_rec and ar_pis_cofins.num_seq = aviso_rec.num_seq
INNER JOIN fornecedor on (fornecedor.cod_fornecedor = nf_sup.cod_fornecedor) INNER join pedidos on (
pedidos.cod_empresa = nf_mestre.cod_empresa
and pedidos.num_pedido = sup_nf_devol_cli.ped_nf_fatura ) INNER join nat_operacao on nat_operacao.cod_nat_oper = nf_mestre.cod_nat_oper INNER join item itemx on (
itemx.cod_item = aviso_rec.cod_item
and aviso_rec.cod_empresa = itemx.cod_empresa ) INNER JOIN clientes on (pedidos.cod_cliente = clientes.cod_cliente) INNER JOIN representante on (
nf_mestre.cod_repres = representante.cod_repres ) left outer join familia on itemx.cod_familia = familia.cod_familia and nf_item.cod_empresa = familia.cod_empresa left outer join grupo_ctr_estoq on itemx.gru_ctr_estoq = grupo_ctr_estoq.gru_ctr_estoq and nf_item.cod_empresa = grupo_ctr_estoq.cod_empresa left outer join info_tecnicas bitolas on bitolas.cod_compon = itemx.cod_item and bitolas.cod_empresa = itemx.cod_empresa and bitolas.num_seq = 2 and bitolas.cod_pdr_info_tec = 900 left outer join pdr_info_tec on pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec left outer join it_pdr_info_tec on it_pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec and it_pdr_info_tec.num_seq = bitolas.num_seq left outer join info_tecnicas lance on lance.cod_compon = itemx.cod_item and lance.cod_empresa = itemx.cod_empresa and lance.num_seq = 3 and lance.cod_pdr_info_tec = 900 left outer join pdr_info_tec pdr_lance on pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec left outer join it_pdr_info_tec it_pdr_lance on it_pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec and it_pdr_lance.num_seq = lance.num_seq left outer join tipo_venda on tipo_venda.cod_tip_venda = pedidos.cod_tip_venda left outer join tipo_cliente tipo_cliente on clientes.cod_tip_cli = tipo_cliente.cod_tip_cli left outer join cidades cidades on clientes.cod_cidade = cidades.cod_cidade left outer join tipo_carteira tipo_carteira on nf_mestre.cod_tip_carteira = tipo_carteira.cod_tip_carteira left outer join cidades cidrepr on representante.cod_cidade = cidrepr.cod_cidade where nat_operacao.ies_emite_dupl = 'S' and not exists (select * from fat_nf_mestre where fat_nf_mestre.nota_fiscal = nf_mestre.num_nff and fat_nf_mestre.empresa = nf_mestre.cod_empresa and fat_nf_mestre.serie_nota_fiscal = nf_mestre.ser_nff) UNION ALL select distinct empresa.cod_empresa, empresa.den_empresa, nf_sup.num_nf, nf_sup.ser_nf, nf_sup.ssr_nf, nf_sup.dat_entrada_nf, tipo_carteira.cod_tip_carteira, tipo_carteira.den_tip_carteira, tipo_venda.cod_tip_venda, tipo_venda.den_tip_venda, nat_operacao.cod_nat_oper, nat_operacao.den_nat_oper, nat_operacao.ies_emite_dupl, nf_mestre_hist.pct_comis, nf_mestre_hist.ies_frete, nf_item_hist.num_sequencia, nf_mestre_hist.dat_emissao, pedidos.num_pedido, pedidos.cod_moeda, clientes.cod_cliente, clientes.nom_cliente, clientes.nom_reduzido, clientes.num_telex, tipo_cliente.cod_tip_cli, tipo_cliente.den_tip_cli, cidades.cod_cidade as cod_cidade_cli, cidades.den_cidade as den_cidade_cli, cidades.cod_uni_feder as cod_uni_feder_cli, nf_sup.cod_transpor, aviso_rec.cod_fiscal_item, aviso_rec.cod_local_estoq, nf_mestre_hist.num_nff, nf_mestre_hist.ser_nff, 0 as subserie_nf, fornecedor.cod_fornecedor, fornecedor.raz_social, fornecedor.raz_social_reduz, fornecedor.num_cgc_cpf, representante.cod_repres, representante.raz_social, representante.num_cgc, representante.nom_guerra, cidrepr.cod_cidade as cod_cidade_rep, cidrepr.den_cidade as den_cidade_rep, cidrepr.cod_uni_feder as cod_uni_feder_rep, nf_sup.dat_entrada_nf, aviso_rec.num_aviso_rec, aviso_rec.num_seq, itemx.cod_item, itemx.den_item, itemx.den_item_reduz, itemx.cod_unid_med, familia.cod_familia, familia.den_familia, grupo_ctr_estoq.gru_ctr_estoq, grupo_ctr_estoq.den_gru_ctr_estoq, itemx.cod_seg_merc, bitolas.des_inf_tecnica as den_bitola, lance.des_inf_tecnica as den_lance, aviso_rec.qtd_declarad_nf, itemx.pes_unit, (aviso_rec.qtd_declarad_nf*itemx.pes_unit) as peso_total, aviso_rec.val_liquido_item, (aviso_rec.val_liquido_item-aviso_rec.val_despesa_aces_i) as val_merc_item, aviso_rec.val_contabil_item, 0.00 as val_acresc_item, 0.00 as val_acre_merc, 0.00 as val_acresc_contab, 0.00 as val_frete_cliente, 0.00 as val_seguro_cliente, 0.00 as val_fret_consig, 0.00 as val_segr_consig, (aviso_rec.val_ipi_decl_item + aviso_rec.val_ipi_desp_aces) as val_ipi, aviso_rec.val_icms_item_d as val_icms, ar_subst_tribut.val_icms_dev_ret as val_icms_st, DECODE(ar_pis_cofins.val_pis_d,null,0.00,ar_pis_cofins.val_pis_d) as val_pis, DECODE(ar_pis_cofins.val_cofins_d,null,0.00,ar_pis_cofins.val_cofins_d) as val_cofins, aviso_rec.val_despesa_aces_i, nf_sup.val_tot_icms_nf_d, nf_sup.ies_especie_nf, nf_mestre_hist.ies_origem from aviso_rec INNER join nf_sup nf_sup on (
nf_sup.cod_empresa = aviso_rec.cod_empresa
AND nf_sup.num_aviso_rec = aviso_rec.num_aviso_rec ) inner join empresa on empresa.cod_empresa = nf_sup.cod_empresa INNER join sup_nf_devol_cli on (
sup_nf_devol_cli.empresa = aviso_rec.cod_empresa
AND sup_nf_devol_cli.aviso_recebto = aviso_rec.num_aviso_rec
and sup_nf_devol_cli.seq_aviso_recebto = aviso_rec.num_seq ) INNER join nf_mestre_hist on (
aviso_rec.cod_empresa = nf_mestre_hist.cod_empresa
and sup_nf_devol_cli.nota_fiscal_fatura = nf_mestre_hist.num_nff )
left outer join nf_item_hist on nf_item_hist.cod_empresa = nf_mestre_hist.cod_empresa and nf_item_hist.num_nff = sup_nf_devol_cli.nota_fiscal_fatura and nf_item_hist.num_sequencia = sup_nf_devol_cli.seq_nf_fatura
left outer join ar_subst_tribut on ar_subst_tribut.cod_empresa = aviso_rec.cod_empresa and ar_subst_tribut.num_aviso_rec = aviso_rec.num_aviso_rec and ar_subst_tribut.num_seq = aviso_rec.num_seq
left outer join ar_pis_cofins on ar_pis_cofins.cod_empresa = aviso_rec.cod_empresa and ar_pis_cofins.num_aviso_rec = aviso_rec.num_aviso_rec and ar_pis_cofins.num_seq = aviso_rec.num_seq
INNER JOIN fornecedor on (fornecedor.cod_fornecedor = nf_sup.cod_fornecedor) INNER join pedidos on (
pedidos.cod_empresa = nf_mestre_hist.cod_empresa
and pedidos.num_pedido = sup_nf_devol_cli.ped_nf_fatura ) INNER join nat_operacao on nat_operacao.cod_nat_oper = nf_mestre_hist.cod_nat_oper INNER join item itemx on (
itemx.cod_item = aviso_rec.cod_item
and aviso_rec.cod_empresa = itemx.cod_empresa ) INNER JOIN clientes on (pedidos.cod_cliente = clientes.cod_cliente) INNER JOIN representante on (
nf_mestre_hist.cod_repres = representante.cod_repres ) left outer join familia on itemx.cod_familia = familia.cod_familia and nf_item_hist.cod_empresa = familia.cod_empresa left outer join grupo_ctr_estoq on itemx.gru_ctr_estoq = grupo_ctr_estoq.gru_ctr_estoq and nf_item_hist.cod_empresa = grupo_ctr_estoq.cod_empresa left outer join info_tecnicas bitolas on bitolas.cod_compon = itemx.cod_item and bitolas.cod_empresa = itemx.cod_empresa and bitolas.num_seq = 2 and bitolas.cod_pdr_info_tec = 900 left outer join pdr_info_tec on pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec left outer join it_pdr_info_tec on it_pdr_info_tec.cod_pdr_info_tec = bitolas.cod_pdr_info_tec and it_pdr_info_tec.num_seq = bitolas.num_seq left outer join info_tecnicas lance on lance.cod_compon = itemx.cod_item and lance.cod_empresa = itemx.cod_empresa and lance.num_seq = 3 and lance.cod_pdr_info_tec = 900 left outer join pdr_info_tec pdr_lance on pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec left outer join it_pdr_info_tec it_pdr_lance on it_pdr_lance.cod_pdr_info_tec = lance.cod_pdr_info_tec and it_pdr_lance.num_seq = lance.num_seq left outer join tipo_venda on tipo_venda.cod_tip_venda = pedidos.cod_tip_venda left outer join tipo_cliente tipo_cliente on clientes.cod_tip_cli = tipo_cliente.cod_tip_cli left outer join cidades cidades on clientes.cod_cidade = cidades.cod_cidade left outer join tipo_carteira tipo_carteira on nf_mestre_hist.cod_tip_carteira = tipo_carteira.cod_tip_carteira left outer join cidades cidrepr on representante.cod_cidade = cidrepr.cod_cidade where nat_operacao.ies_emite_dupl = 'S' and not exists (select * from fat_nf_mestre_hist where fat_nf_mestre_hist.nota_fiscal = nf_mestre_hist.num_nff and fat_nf_mestre_hist.empresa = nf_mestre_hist.cod_empresa and fat_nf_mestre_hist.serie_nota_fiscal = nf_mestre_hist.ser_nff)
Exemplo de SELECT utilizando esta view:
select distinct vw_devolucao.num_nff as num_nf, vw_devolucao.ser_nff as ser_nf, vw_devolucao.cod_fornecedor, vw_devolucao.dat_emissao as dat_entrada_nf, vw_devolucao.raz_social_forn as raz_social, vw_devolucao.cod_item, vw_devolucao.cod_unid_med as cod_unid_med_nf, vw_devolucao.val_ipi as val_ipi_calc_item, vw_devolucao.val_merc_item as val_liquido_item, vw_devolucao.val_contab_item as val_contabil_item, vw_devolucao.qtd_item as qtd_declarad_nf, vw_devolucao.cod_fiscal_item, vw_devolucao.cod_local_estoq, vw_devolucao.cod_repres, vw_devolucao.num_nff_origem, vw_devolucao.den_item_reduz, vw_devolucao.pes_unit, vw_devolucao.nom_guerra, vw_devolucao.cod_tip_carteira as codmestre, vw_devolucao.cod_tip_carteira, vw_devolucao.den_tip_carteira, vw_devolucao.nom_reduzido, vw_devolucao.cod_cliente, vw_devolucao.num_seq, vw_devolucao.num_aviso_rec, vw_devolucao.cod_empresa from vw_devolucao where vw_devolucao.dat_emissao >= '2011-10-01' and vw_devolucao.dat_emissao <= '2011-10-05' ORDER BY 19 ASC, 22 ASC, 1 ASC
Sei que são muitas informações, mas agradeço se puderem dar uma analisada e com base nestes dados me auxiliarem, acredito que já tive grandes progressos com tudo o que já me foi explicado.
Muito obrigado mesmo e precisando de algum auxilio em Java ou desenvolvimento web, contem comigo.
Rafael Lima MSN:rafael@relato.com.br Relato Informática
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [173]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Estouro de arquivo temporário - Chunk
Posted by: domusonline@gmail.com (Fernando Nunes) - Tue, 04 Oct 2011 19:17:32 EDT
Rafael,
Como salvo erro disse o Alexandre, há aí uma aparente confusão, mas que faz toda a diferença. Você diz que o espaço livre diminui num chunk que pertence ao dbspace "prd" que é um dbspace não temporário.
As estruturas causada por queries em cima de views são estruturas temporárias e que devem ir para os DBSPACEs temporários. No seu caso o espaço está a ser consumido num dbspace "regular".
Alguma coisa no seu código cria tabelas temporárias sem usar a cláusula "WITH NO LOG"? Tente fazer um onstat -g ses <id_sessao> sendo "<id_sessao> o session ID de uma das suas sessões Java
Tabelas temporárias sem a cláusula acima fazem "log". E essas são colocadas no DBSPACE da base de dados (acredito que a sua BD tenha sido crirada no dbspace "prd", ou no root dbs
Em vez de parar a instância pode tentar parar só as componentes/sessões que causam isto (java?)
Em tempos houve bugs/problemas com a escolha da localização de objectos "temporários". Mas penso que nessa versão não deveria haver. Seria de ponderar abrir um PMR na IBM para que possam ajudar a investigar/resolver a questão.
Cumprimentos.
2011/10/4 RAFAEL LIMA <rafael@relato.com.br>
> Bom dia Jairo, tudo ok? > > A versão do banco é "IBM Informix Dynamic Server Version 11.50.FC6WE". > > Executei o comando: (onstat -c | grep DBSPACETEMP) o resultado foi este: > # DBSPACETEMP - The list of dbspaces used to store temporary > DBSPACETEMP prd_tmp_1,prd_tmp_2,prd_tmp_3,prd_tmp_4 > > Creio que a primeira linha seja um comentário, correto? E pelo que entendi, > foram definidas 4 áreas temporárias. > > Para monitorar os espaços utilizados pelas áreas temporárias estou usando o > comando (onstat -d), que resultou nisto: > > > ################################################################################ > IBM Informix Dynamic Server Version 11.50.FC6WE -- On-Line (Prim) -- Up > 23:27:27 -- 6160256 Kbytes > > Dbspaces > address number flags fchunk nchunks pgsize flags owner name > 15d495028 1 0x40001 1 1 2048 N B informix prd_root > 15ee11cd8 2 0x40001 2 1 2048 N B informix prd_plog > 15ee11e70 3 0x40001 3 1 2048 N B informix prd_llog > 15ee10710 4 0x42001 4 1 2048 N TB informix prd_tmp_1 > 15ee108a8 5 0x42001 5 1 2048 N TB informix prd_tmp_2 > 15ee10a40 6 0x42001 6 1 2048 N TB informix prd_tmp_3 > 15ee10bd8 7 0x40001 7 1 2048 N B informix prd > 15ee10d70 8 0x40001 8 1 2048 N B informix prd_sped > 15ee12028 9 0x40001 10 1 2048 N B informix prd_admin > 15ee121c0 10 0x42001 9 1 2048 N TB informix prd_tmp_4 > 10 active, 2047 maximum > > Chunks > address chunk/dbs offset size free bpages flags pathname > 15d4951c0 1 1 0 500000 495687 PO-B- /banco/prd/prd_root.000 > 15ee12358 2 2 0 250000 0 PO-B- /banco/prd/prd_plog.000 > 15ee12548 3 3 0 2000000 0 PO-B- /banco/prd/prd_llog.000 > 15ee12738 4 4 0 500000 496282 PO-B- /banco/prd/prd_tmp_1.000 > 15ee12928 5 5 0 500000 496919 PO-B- /banco/prd/prd_tmp_2.000 > 15ee12b18 6 6 0 500000 496600 PO-B- /banco/prd/prd_tmp_3.000 > 15ee12d08 7 7 0 45000000 7492915 PO-B- /banco/prd/prd.000 > 15ee15028 8 8 0 4500000 4010191 PO-B- /banco/prd/prd_sped.000 > 15ee15218 9 10 0 1000000 996454 PO-B- /banco/prd/prd_tmp_4.000 > 15ee15408 10 9 0 500000 449051 PO-B- /banco/prd/prd_admin.000 > 10 active, 32766 maximum > > NOTE: The values in the "size" and "free" columns for DBspace chunks are > > displayed in terms of "pgsize" of the DBspace to which they belong. > > Expanded chunk capacity mode: always > > > ################################################################################ > > Quando começo a executar select's das minhas VIEWS reparo que o espaço > livre > vai diminuindo, mais precisamente desta área: > > 15ee12d08 7 7 0 45000000 7492915 PO-B- /banco/prd/prd.000 > > O que ocorre, é que consigo executar minhas VIEWS, mas chega um ponto, > normalmente final de mês, quando a empresa tem um volume bem maior de > consultas, que há este estouro de arquivo temporário. E a única solução que > eles encontraram é baixar o banco, reiniciar a máquina e subir novamente, > acho > que com isso a área temporária é zerada correto ? > > Não sei se eles executam mais algum comando para liberar esta área, mas > acredito que o procedimento seja este apenas. > > Pelo que entendi, eles deveriam aumentar o tamanho destas áreas então ? > (prd_tmp_1,prd_tmp_2,prd_tmp_3,prd_tmp_4). > > Quanto ao driver JDBC, vou montar uma classe de exemplo, mas acredito que > ele > nem seja o maior problema neste caso, o driver que uso atualmente parece > ser > compatível com esta versão do banco, certo ? > > Muito obrigado pela ajuda e desculpe pela falta de conhecimento, > > Rafael Lima > > > > > > >
-- Fernando Nunes Portugal
http://informix-technology.blogspot.com My email works... but I don't check it frequently...
--0016e6de17b8716c6504ae814b18
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [172]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Estouro de arquivo temporário - Chunk
Posted by: domusonline@gmail.com (Fernando Nunes) - Tue, 04 Oct 2011 19:05:42 EDT
Celso, algumas correcções:
1- É possível definir o(s) dbspaces com a variável DBSPACETEMP colocada do lado do cliente (o que tem como aspecto negativo o facto de o DBA não poder sobrepor-se à "vontade" do cliente, mas tratando-se de ambiente Java não é critico 2- O optimizador só escolhe armazenar dados em espaço temporário quando entende não ter outra forma de o fazer. Em particular:
- Sorts (aumentando o DS_NONPDQ_QUERY_MEM pode evitar-se sorts em disco
- Group by
- Materialização de views (embora tente evitá-lo passando os predicados das queries para as tabelas usadas nas views)
- Hash joins
Cumprimentos.
2011/10/4 Celso Cabral Coimbra <ccoimbra@cleartech.com.br>
> Rafael, > > Qual versão do banco? Tive muitos problemas relacionado com a versão 10 > utilizando PDQ. > A área temporária é única para toda a instancia, você não define nem o > dbspace > utilizar muito menos o chunk. > Unions e Joins são executados utilizando realmente área temporária, na > pratica > o otimizador sempre faz join entre 2 tabelas, o resultado disto gravado em > tabelas temporárias e ai então faz join com outra tabela e assim > sucessivamente. A área temporária tem que ser ajustada de acordo com a > utilização demandada pela aplicação. Mas se teve uma mudança, preste > atenção > se não tem produto cartesiano em suas queries. > > Celso Cabral Coimbra > Administrador de Banco de Dados > ClearTech Ltda > "Trust at the heart of Communications" > Tel. (11) 3576-4509 > > -----Mensagem original----- > De: iiug-por-bounces@iiug.org [mailto:iiug-por-bounces@iiug.org] Em nome > de > RAFAEL LIMA > Enviada em: segunda-feira, 3 de outubro de 2011 19:16 > Para: iiug-por@iiug.org > Assunto: Estouro de arquivo temporário - Chunk [164] > > Boa tarde, sou programador Java e há alguns anos atuo num cliente que > possui > banco Informix. > Recentemente eles migraram para a versão 11, e também fizemos uma grande > modificação no nosso ambiente, criando VIEWS em substituição a queries > grandes > utilizando vários UNIONS e JOINS. > Coincidentemente, começamos a enfrentar um problema de estouro de arquivo > temporário, pelo que pesquisei há uma configuração de "chunk" que define > uma > quantidade X para esse arquivo temporário. > Tenho algumas dúvidas: > > - Monitorando pelo comando "onstat -d", reparei que ao executar minha VIEW > (que possui alguns UNIONS e vários JOINS), o tamanho dessa área temporária > vai > diminuindo cada vez mais e como eles usam um ERP (Logix) e temos essa área > de > extranet feita em Java, a tendencia é ele ir diminuindo cada vez mais, já > que > há um grande volume de consultas, até chegar ao ponto que estoura e não > executa mais queries que necessitam dessa área temporária. > Como poderia resolver isso ? > Há como isolar um "chunk" para um determinado usuário da database? E se > houver, daria para eu "zerar" essa área, sem necessidade de baixar o banco > e > subir novamente ? > > - Outra questão que tenho dúvidas é quanto ao JDBC que utilizamos, fiz > algumas > pesquisas e li que o único driver nível 4 era o JCC da IBM, porém ele tem > alguns defeitos, como por exemplo não retornar corretamente os nomes dos > campos no select, por este motivo estamos utilizando o "ifxjdbcx.jar" e > suas > dependencias, gostaria de saber qual JDBC indicam para o INFORMIX 11. > > Obrigado. > > > > > > > > > > > >
-- Fernando Nunes Portugal
http://informix-technology.blogspot.com My email works... but I don't check it frequently...
--001485f1bdc42cbf2d04ae812019
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [171]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Estouro de arquivo temporário - Chunk
Posted by: amarini@fazenda.ms.gov.br (Alexandre Marini) - Tue, 04 Oct 2011 11:07:28 EDT
Rafael, bom dia. O chunk que vc se refere faz parte do dbspace número 7:
Chunks address chunk/*dbs*offset size free bpages flags pathname
15ee12d08 7*7*0 45000000 7492915 PO-B- /banco/prd/prd.000
(terceira coluna indica o dbspace, ok?)
Dbspaces address*number*flags fchunk nchunks pgsize flags owner name
15ee10bd8*7*0x40001 7 1 2048 N B informix prd
Trata-se portanto de um dbspace normal (de dados), e não de um dbspace temporário, ok?
Você poderia por gentileza nos fornecer os parâmetros de conexão java que está utilizando no momento? (uma saída de um comando onstat -g ses [sessid] de alguma sessão conectada com java também seria interessante).
Assim podemos lhe auxiliar a ajustar corretamente os parâmetros de conexão, quem sabe algum deles não esteja incorreto.
Também acredito que seu servidor Informix necessite de algum ajuste de performance, ok?
Caso tenha necessidade de alguma manutenção, podemos lhe indicar parceiros IBM que fazem este tipo de serviço (até mesmo remotamente, caso seja possível, tudo depende da sua urgência para solução do problema).
Att.
Em 04/10/2011 10:52, RAFAEL LIMA escreveu: > 4 0
--
Alexandre Marini
Tecnologia da Informação - DBA
SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix
<Cert-Info-Mgmt_color.jpg>
IBM Certified System Administrator - Informix Dynamic Server V10 / V11 / V11.70
IBM Information Management Informix Technical Professional v3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [170]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Estouro de arquivo temporário - Chunk
Posted by: rafael@relato.com.br (RAFAEL LIMA) - Tue, 04 Oct 2011 10:52:56 EDT
Bom dia Jairo, tudo ok?
A versão do banco é "IBM Informix Dynamic Server Version 11.50.FC6WE".
Executei o comando: (onstat -c | grep DBSPACETEMP) o resultado foi este: # DBSPACETEMP - The list of dbspaces used to store temporary DBSPACETEMP prd_tmp_1,prd_tmp_2,prd_tmp_3,prd_tmp_4
Creio que a primeira linha seja um comentário, correto? E pelo que entendi, foram definidas 4 áreas temporárias.
Para monitorar os espaços utilizados pelas áreas temporárias estou usando o comando (onstat -d), que resultou nisto:
################################################################################ IBM Informix Dynamic Server Version 11.50.FC6WE -- On-Line (Prim) -- Up 23:27:27 -- 6160256 Kbytes
Dbspaces address number flags fchunk nchunks pgsize flags owner name 15d495028 1 0x40001 1 1 2048 N B informix prd_root 15ee11cd8 2 0x40001 2 1 2048 N B informix prd_plog 15ee11e70 3 0x40001 3 1 2048 N B informix prd_llog 15ee10710 4 0x42001 4 1 2048 N TB informix prd_tmp_1 15ee108a8 5 0x42001 5 1 2048 N TB informix prd_tmp_2 15ee10a40 6 0x42001 6 1 2048 N TB informix prd_tmp_3 15ee10bd8 7 0x40001 7 1 2048 N B informix prd 15ee10d70 8 0x40001 8 1 2048 N B informix prd_sped 15ee12028 9 0x40001 10 1 2048 N B informix prd_admin 15ee121c0 10 0x42001 9 1 2048 N TB informix prd_tmp_4 10 active, 2047 maximum
Chunks address chunk/dbs offset size free bpages flags pathname 15d4951c0 1 1 0 500000 495687 PO-B- /banco/prd/prd_root.000 15ee12358 2 2 0 250000 0 PO-B- /banco/prd/prd_plog.000 15ee12548 3 3 0 2000000 0 PO-B- /banco/prd/prd_llog.000 15ee12738 4 4 0 500000 496282 PO-B- /banco/prd/prd_tmp_1.000 15ee12928 5 5 0 500000 496919 PO-B- /banco/prd/prd_tmp_2.000 15ee12b18 6 6 0 500000 496600 PO-B- /banco/prd/prd_tmp_3.000 15ee12d08 7 7 0 45000000 7492915 PO-B- /banco/prd/prd.000 15ee15028 8 8 0 4500000 4010191 PO-B- /banco/prd/prd_sped.000 15ee15218 9 10 0 1000000 996454 PO-B- /banco/prd/prd_tmp_4.000 15ee15408 10 9 0 500000 449051 PO-B- /banco/prd/prd_admin.000 10 active, 32766 maximum
NOTE: The values in the "size" and "free" columns for DBspace chunks are
displayed in terms of "pgsize" of the DBspace to which they belong.
Expanded chunk capacity mode: always
################################################################################
Quando começo a executar select's das minhas VIEWS reparo que o espaço livre vai diminuindo, mais precisamente desta área:
15ee12d08 7 7 0 45000000 7492915 PO-B- /banco/prd/prd.000
O que ocorre, é que consigo executar minhas VIEWS, mas chega um ponto, normalmente final de mês, quando a empresa tem um volume bem maior de consultas, que há este estouro de arquivo temporário. E a única solução que eles encontraram é baixar o banco, reiniciar a máquina e subir novamente, acho que com isso a área temporária é zerada correto ?
Não sei se eles executam mais algum comando para liberar esta área, mas acredito que o procedimento seja este apenas.
Pelo que entendi, eles deveriam aumentar o tamanho destas áreas então ? (prd_tmp_1,prd_tmp_2,prd_tmp_3,prd_tmp_4).
Quanto ao driver JDBC, vou montar uma classe de exemplo, mas acredito que ele nem seja o maior problema neste caso, o driver que uso atualmente parece ser compatível com esta versão do banco, certo ?
Muito obrigado pela ajuda e desculpe pela falta de conhecimento,
Rafael Lima
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [169]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Estouro de arquivo temporário - Chunk
Posted by: amarini@fazenda.ms.gov.br (Alexandre Marini) - Tue, 04 Oct 2011 08:19:11 EDT
Outro detalhe: peça para o administrador checar o parâmetro IFX_FOLDVIEW (deve estar ligado ok)?
Att.
Em 04/10/2011 08:14, Alexandre Marini escreveu: > Olá. > Por favor, qual versão do JDBC driver você está usando? > Eu recomendaria que utilizasse a última release 3.70.JC3, pois ela > possui alguns bugs corrigidos. > > 1) Pode dar uma olhada na página abaixo, lá são relatados os problemas > já corrigidos. > > http://publib.boulder.ibm.com/infocenter/idshelp/v117/topic/com.ibm.relnotes.doc/notes/jdbc_370jc3/jdbcrel.htm#wq8 > > 2) tenha a certeza de que suas conexões estão utilizando memória, e > possivelmente não estão liberando-a após o uso. > (você poderia ligar o trace e analisar o consumo de memória de uma > sessão em execução, por exemplo). > > 3) qual a release de sua atual versão do Informix? Pedimos que sempre > coloque a versão completa, e a arquitetura do servidor, > pois algumas recomendações são específicas para a plataforma. > Caso esteja executando alguma release 11.70, recomendo verificar se está > em uso o recurso de STMT_CACHE. Caso esteja ativado, > e sua release seja 11.70.xC1 ou xC2, por favor desabilite o recurso. Há > APAR identificado relatando problemas com uso de statement cache nestas > releases. > > Att. > > Em 03/10/2011 19:53, Jairo Gubler escreveu: >> Suponho que a área que está estourando é um dbspace temporário. >> Verifique (ou solicite ao DBA) a configuração de dbspaces temporários no >> arquivo $INFORMIXDIR/etc/onconfig ou pelo comando abaixo: >> [informix@xxxx ~]$ onstat -c |grep DBSPACETEMP >> # DBSPACETEMP: >> DBSPACETEMP temp # Default temp dbspaces >> >> Se existir esta configuração, provavelmente a área reservada é >> insuficiente para a operação de join ou order que está sendo realizado. >> Neste caso aumente o tamanho do dbspace. >> >> Se não existir esta área o BD pode estar utilizando outra área que você >> já identificou no "onstat -d" >> Neste caso, aumente esta área ou crie um dbspace temporário com tamanho >> suficiente. >> >> Com relação ao driver JDBC, desconheço problemas no retorno de colunas >> do SELECT. >> >> Jairo Gubler >> >> Em 03/10/2011 19:16, RAFAEL LIMA escreveu: >>> Boa tarde, sou programador Java e há alguns anos atuo num cliente que > possui >>> banco Informix. >>> Recentemente eles migraram para a versão 11, e também fizemos uma grande >>> modificação no nosso ambiente, criando VIEWS em substituição a queries >> grandes >>> utilizando vários UNIONS e JOINS. >>> Coincidentemente, começamos a enfrentar um problema de estouro de arquivo >>> temporário, pelo que pesquisei há uma configuração de "chunk" que define > uma >>> quantidade X para esse arquivo temporário. >>> Tenho algumas dúvidas: >>> >>> - Monitorando pelo comando "onstat -d", reparei que ao executar minha VIEW >>> (que possui alguns UNIONS e vários JOINS), o tamanho dessa área temporária >> vai >>> diminuindo cada vez mais e como eles usam um ERP (Logix) e temos essa área >> de >>> extranet feita em Java, a tendencia é ele ir diminuindo cada vez mais, já >> que >>> há um grande volume de consultas, até chegar ao ponto que estoura e não >>> executa mais queries que necessitam dessa área temporária. >>> Como poderia resolver isso ? >>> Há como isolar um "chunk" para um determinado usuário da database? E se >>> houver, daria para eu "zerar" essa área, sem necessidade de baixar o banco > e >>> subir novamente ? >>> >>> - Outra questão que tenho dúvidas é quanto ao JDBC que utilizamos, fiz >> algumas >>> pesquisas e li que o único driver nível 4 era o JCC da IBM, porém ele tem >>> alguns defeitos, como por exemplo não retornar corretamente os nomes dos >>> campos no select, por este motivo estamos utilizando o "ifxjdbcx.jar" e > suas >>> dependencias, gostaria de saber qual JDBC indicam para o INFORMIX 11. >>> >>> Obrigado. >>> >>> >>> > >>> >>> >>> >> > >> >> >>
--
Alexandre Marini
Tecnologia da Informação - DBA
SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix
<Cert-Info-Mgmt_color.jpg>
IBM Certified System Administrator - Informix Dynamic Server V10 / V11 / V11.70
IBM Information Management Informix Technical Professional v3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [168]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Re: Estouro de arquivo temporário - Chunk
Posted by: amarini@fazenda.ms.gov.br (Alexandre Marini) - Tue, 04 Oct 2011 08:14:41 EDT
Olá. Por favor, qual versão do JDBC driver você está usando? Eu recomendaria que utilizasse a última release 3.70.JC3, pois ela possui alguns bugs corrigidos.
1) Pode dar uma olhada na página abaixo, lá são relatados os problemas já corrigidos.
http://publib.boulder.ibm.com/infocenter/idshelp/v117/topic/com.ibm.relnotes.doc/notes/jdbc_370jc3/jdbcrel.htm#wq8
2) tenha a certeza de que suas conexões estão utilizando memória, e possivelmente não estão liberando-a após o uso. (você poderia ligar o trace e analisar o consumo de memória de uma sessão em execução, por exemplo).
3) qual a release de sua atual versão do Informix? Pedimos que sempre coloque a versão completa, e a arquitetura do servidor, pois algumas recomendações são específicas para a plataforma. Caso esteja executando alguma release 11.70, recomendo verificar se está em uso o recurso de STMT_CACHE. Caso esteja ativado, e sua release seja 11.70.xC1 ou xC2, por favor desabilite o recurso. Há APAR identificado relatando problemas com uso de statement cache nestas releases.
Att.
Em 03/10/2011 19:53, Jairo Gubler escreveu: > Suponho que a área que está estourando é um dbspace temporário. > Verifique (ou solicite ao DBA) a configuração de dbspaces temporários no > arquivo $INFORMIXDIR/etc/onconfig ou pelo comando abaixo: > [informix@xxxx ~]$ onstat -c |grep DBSPACETEMP > # DBSPACETEMP: > DBSPACETEMP temp # Default temp dbspaces > > Se existir esta configuração, provavelmente a área reservada é > insuficiente para a operação de join ou order que está sendo realizado. > Neste caso aumente o tamanho do dbspace. > > Se não existir esta área o BD pode estar utilizando outra área que você > já identificou no "onstat -d" > Neste caso, aumente esta área ou crie um dbspace temporário com tamanho > suficiente. > > Com relação ao driver JDBC, desconheço problemas no retorno de colunas > do SELECT. > > Jairo Gubler > > Em 03/10/2011 19:16, RAFAEL LIMA escreveu: >> Boa tarde, sou programador Java e há alguns anos atuo num cliente que possui >> banco Informix. >> Recentemente eles migraram para a versão 11, e também fizemos uma grande >> modificação no nosso ambiente, criando VIEWS em substituição a queries > grandes >> utilizando vários UNIONS e JOINS. >> Coincidentemente, começamos a enfrentar um problema de estouro de arquivo >> temporário, pelo que pesquisei há uma configuração de "chunk" que define uma >> quantidade X para esse arquivo temporário. >> Tenho algumas dúvidas: >> >> - Monitorando pelo comando "onstat -d", reparei que ao executar minha VIEW >> (que possui alguns UNIONS e vários JOINS), o tamanho dessa área temporária > vai >> diminuindo cada vez mais e como eles usam um ERP (Logix) e temos essa área > de >> extranet feita em Java, a tendencia é ele ir diminuindo cada vez mais, já > que >> há um grande volume de consultas, até chegar ao ponto que estoura e não >> executa mais queries que necessitam dessa área temporária. >> Como poderia resolver isso ? >> Há como isolar um "chunk" para um determinado usuário da database? E se >> houver, daria para eu "zerar" essa área, sem necessidade de baixar o banco e >> subir novamente ? >> >> - Outra questão que tenho dúvidas é quanto ao JDBC que utilizamos, fiz > algumas >> pesquisas e li que o único driver nível 4 era o JCC da IBM, porém ele tem >> alguns defeitos, como por exemplo não retornar corretamente os nomes dos >> campos no select, por este motivo estamos utilizando o "ifxjdbcx.jar" e suas >> dependencias, gostaria de saber qual JDBC indicam para o INFORMIX 11. >> >> Obrigado. >> >> >> > >> >> >> > > > > >
--
Alexandre Marini
Tecnologia da Informação - DBA
SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix
<Cert-Info-Mgmt_color.jpg>
IBM Certified System Administrator - Informix Dynamic Server V10 / V11 / V11.70
IBM Information Management Informix Technical Professional v3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [167]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Olá. Por favor, qual versão do JDBC driver você está usando? Eu recomendaria que utilizasse a última release 3.70.JC3, pois ela possui alguns bugs corrigidos.
1) Pode dar uma olhada na página abaixo, lá são relatados os problemas já corrigidos.
http://publib.boulder.ibm.com/infocenter/idshelp/v117/topic/com.ibm.relnotes.doc/notes/jdbc_370jc3/jdbcrel.htm#wq8
2) tenha a certeza de que suas conexões estão utilizando memória, e possivelmente não estão liberando-a após o uso. (você poderia ligar o trace e analisar o consumo de memória de uma sessão em execução, por exemplo).
3) qual a release de sua atual versão do Informix? Pedimos que sempre coloque a versão completa, e a arquitetura do servidor, pois algumas recomendações são específicas para a plataforma. Caso esteja executando alguma release 11.70, recomendo verificar se está em uso o recurso de STMT_CACHE. Caso esteja ativado, e sua release seja 11.70.xC1 ou xC2, por favor desabilite o recurso. Há APAR identificado relatando problemas com uso de statement cache nestas releases.
Att.
Em 03/10/2011 19:53, Jairo Gubler escreveu: > Suponho que a área que está estourando é um dbspace temporário. > Verifique (ou solicite ao DBA) a configuração de dbspaces temporários no > arquivo $INFORMIXDIR/etc/onconfig ou pelo comando abaixo: > [informix@xxxx ~]$ onstat -c |grep DBSPACETEMP > # DBSPACETEMP: > DBSPACETEMP temp # Default temp dbspaces > > Se existir esta configuração, provavelmente a área reservada é > insuficiente para a operação de join ou order que está sendo realizado. > Neste caso aumente o tamanho do dbspace. > > Se não existir esta área o BD pode estar utilizando outra área que você > já identificou no "onstat -d" > Neste caso, aumente esta área ou crie um dbspace temporário com tamanho > suficiente. > > Com relação ao driver JDBC, desconheço problemas no retorno de colunas > do SELECT. > > Jairo Gubler > > Em 03/10/2011 19:16, RAFAEL LIMA escreveu: >> Boa tarde, sou programador Java e há alguns anos atuo num cliente que possui >> banco Informix. >> Recentemente eles migraram para a versão 11, e também fizemos uma grande >> modificação no nosso ambiente, criando VIEWS em substituição a queries > grandes >> utilizando vários UNIONS e JOINS. >> Coincidentemente, começamos a enfrentar um problema de estouro de arquivo >> temporário, pelo que pesquisei há uma configuração de "chunk" que define uma >> quantidade X para esse arquivo temporário. >> Tenho algumas dúvidas: >> >> - Monitorando pelo comando "onstat -d", reparei que ao executar minha VIEW >> (que possui alguns UNIONS e vários JOINS), o tamanho dessa área temporária > vai >> diminuindo cada vez mais e como eles usam um ERP (Logix) e temos essa área > de >> extranet feita em Java, a tendencia é ele ir diminuindo cada vez mais, já > que >> há um grande volume de consultas, até chegar ao ponto que estoura e não >> executa mais queries que necessitam dessa área temporária. >> Como poderia resolver isso ? >> Há como isolar um "chunk" para um determinado usuário da database? E se >> houver, daria para eu "zerar" essa área, sem necessidade de baixar o banco e >> subir novamente ? >> >> - Outra questão que tenho dúvidas é quanto ao JDBC que utilizamos, fiz > algumas >> pesquisas e li que o único driver nível 4 era o JCC da IBM, porém ele tem >> alguns defeitos, como por exemplo não retornar corretamente os nomes dos >> campos no select, por este motivo estamos utilizando o "ifxjdbcx.jar" e suas >> dependencias, gostaria de saber qual JDBC indicam para o INFORMIX 11. >> >> Obrigado. >> >> >> > >> >> >> > > > > >
--
Alexandre Marini
Tecnologia da Informação - DBA
SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix
<Cert-Info-Mgmt_color.jpg>
IBM Certified System Administrator - Informix Dynamic Server V10 / V11 / V11.70
IBM Information Management Informix Technical Professional v3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
To post a response via email (IIUG members only):
1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [167]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | | | Subscribe to this feed | | You can subscribe to this RSS feed in a number of ways, including the following: Drag the orange RSS button into your News Reader Drag the URL of the RSS feed into your News Reader Cut and paste the URL of the RSS feed into your News Reader>v | |