Patrocinadores

Você está aquiLeitor de feeds

Leitor de feeds


Webcast com especialistas de Informix V12.1 [em português]

InformixBR - ter, 16/04/2013 - 15:02


Bate-papo com especialistas de Informix - Quinta-feira, 18 de Abril às 11:00 horas

Informix© 12.10 já está disponível!

Participe deste bate-papo com os peritos de Informix e conheça as principais características oferecidas pelo Informix 12.10 abrangendo os cinco temas para esta versão: Cloud, Ease of Use and Administration (facilidade de uso e administração), Data Warehouse, Smart Data (dados inteligentes) e Embeddability (aplicações embutidas). Com o nosso slogan para esta versão: "Simplesmente Poderoso!!!", 12.10 soluciona o desafio de lidar com conjunto de dados Big Data (Big Data datasets) proveniente de sensores; reporta ganhos de desempenho e escalabilidade sem precedentes; reduz a área utilizada para armazenamento de dados e aumenta o desempenho com as novas capacidades de compressão de índices e Blobs, como também, compressão automática de Tabelas; possibilita a execução de backups e recuperação de dados de um modo muito mais fácil e rápido com o nosso novo gerenciador de armazenamento primário (Primary Storage Manager - PSM). Informix 12.10 melhora o desempenho em todos os tipos de cargas de dados, permitindo simultaneamente atender às demandas de ambientes OLTP e OLAP em ambientes de missão crítica. Com relação ao IWA (Informix Warehouse Accelerator) também foi grande o investimento com recursos como o "Trickle Feed" que permite que dados atualizados no servidor Informix sejam automática e continuamente atualizados no IWA. Para ambientes com vários nós de replicação, implementamos uma maneira rápida e fácil de executar consultas em nós distribuídos, e os servidores podem ser adicionados ou removidos de forma dinâmica e transparente para a aplicação.

Estas e muitas outras características fazem o Informix 12.10 "Simplesmente Poderoso!!!". Junte-se a nós neste bate-papo e também descubra uma melhor integração com Cognos, sistemas IBM PureApplication, IBM Mobile Database, IBM SPSS, e soluções de ERP com parceiros de negócios como a Pronto Software.

Nosso palestrante será o Sr. Sergio Dias, Engenheiro do Laboratório de Desenvolvimento da IBM Informix, especialista em qualidade do produto para sistemas de replicação e alta disponibilidade.

Informações de Acesso: https://www.mymeetings.com/emeet/rsvp/index.jsp?customHeader=mymeetings&Conference_ID=9732676&passcode=5684340

Para se inscrever para o evento:
1. Clique no URL listado acima e digite seu nome e endereço de e-mail
2. Clique no botão "Proceed" para receber um e-mail de confirmação
3. No e-mail de confirmação com o título "RSVP confirmation xxxx" encontrar o número de telefone para fazer chamadas gratuitas de seu país e o número de PASSCODE e PIN que você vai precisar no dia

No dia do bate-papo:
4. Estabelecer a ligação 10 minutos antes do início do bate-papo para evitar contratempos
5. Uma operadora automática em Inglês solicitará o PASSCODE, seguido de # ("pound sign" em Inglês)
    Exemplo: 5684340#
6. Em seguida solicitará o PIN seguido do símbolo # de novo
7. Se os números são aceitos a chamada será transferida para o bate-papo, e é só esperar até que a sessão se inicie (ouvirá música)
8. Se os números não forem aceitos, a operadora ira solicitar de novo, mas você pode pressionar *0 para ser conectado a uma operadora em pessoa (em Inglês), que irá lhe pedir suas informações pessoais e o PASSCODE antes de transferi-lo para o bate-papo

A tabela abaixo contem o horário do bate-papo e o número de telefone gratuito para cada país de onde estiver fazendo a ligação. Se estiver chamando de um país onde não existe um número gratuito, pode chamar o número dos EUA através do Skype ou utilizar AT&T USA Direct (http://www.usa.att.com/traveler/index.jsp) se estiver disponível em seu país.

Aguardamos vocês!!!!

País    Hora    Telefone
Brasil    11am    0800-8911977
Portugal    3pm    8008-60385
EUA/Miami    10am    866-803-2145

Download da apresentação:

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Informix%20Chat%20With%20the%20Lab/page/Portuguese

Categorias: Blogs em Português

Stay in touch with me through LinkedIn

Forum Informix em Português do IIUG - sex, 12/04/2013 - 16:37

LinkedIn ------------ IIUG, I'd like to include you in my network to share updates and stay in touch. - Fabio Fabio Tsuzuki Presidente at Media Portal São Paulo Area, Brazil Confirm that you know Fabio Tsuzuki: https://www.linkedin.com/e/p8dgds-hffrcn1f-2t/isd/12430403150/8MCUHLdD/?hs=false&tok=3Hns9XFBvVlBI1 -- You are receiving Invitation to Connect emails. Click to unsubscribe: http://www.linkedin.com/e/p8dgds-hffrcn1f-2t/zU8izgb8yd9ExpWXw5zRFX7Fzzz7/goo/iiug-por%40iiug%2Eorg/20061/I4118808834_1/?hs=false&tok=3vGUlPLWXVlBI1 (c) 2012 LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. ******************************************************************************* 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: [218] *******************************************************************************

Categorias: Forums de Informix em Português

12.10 install issue on HP-UX / Problema na instalação de 12.10 em HP-UX

Informix-Techonology - sex, 05/04/2013 - 18:00

This article is written in English and Portuguese (full article here)
Este artigo está escrito em Inglês e Português (artigo completo aqui)


English version:
Very quick post to report a small issue and it's solution while installing the latest Informix version (12.10) on HP-UX (11.31 - Itanium).
After decompressing the tar file I've run ids_install and got the following error:
./ids_install
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
tar: ././@LongLink - cannot create

[ lots of similar lines]

tar: ././@LongLink - cannot create
tar: ././@LongLink - cannot create
tar: ././@LongLink - cannot create
The included VM could not be unarchived (TAR). Please try to download
the installer again and make sure that you download using 'binary'
mode. Please do not attempt to install this currently downloaded copy.

I verified the package integrity and after some internal and external search I've found references to the fact that some versions of native tar command don't support long file names (the limit of 100 characters is referenced in some sources). A possible solution is to get, install and use the GNU tar (a tar utility made available by the GNU foundation).
I also tried to install 12.10 in Linux and AIX (7.1) without problems. On Linux this seems natural because Linux's flavor of tar is the GNU one. It's possible that some customers already have GNU tar installed on their systems and they will probably hit this problem.
Here are a couple of links that reference similar issues:

If you need to download the GNU version of tar for HP-UX, this seems to one option, but please check with your HP-UX system administrators or HP-UX support (as this is not an official HP site):

http://hpux.connect.org.uk/hppd/hpux/Gnu/tar-1.26/

After having the GNU tar, make sure it's run preferably over the standard tar (set up the PATH environment variable). After that the installation should run without further issues.
There is an open PMR on IBM to analyze this issue. At least I expect that it will become referenced on the machine notes, or in a public article, but it would be nice not to have any dependency on external tools to make the installation 

Versão Portuguesa:
Um artigo rápido para reportar um pequeno problema e respectiva solução durante a instalação da última versão de Informix (v12.10) em HP-UX (11.31 - Itanium).
Depois de descomprimir o pacote "tar" executei o ids_install e obtive o seguinte erro:
./ids_install
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
tar: ././@LongLink - cannot create

[ lots of similar lines]

tar: ././@LongLink - cannot create
tar: ././@LongLink - cannot create
tar: ././@LongLink - cannot create
The included VM could not be unarchived (TAR). Please try to download
the installer again and make sure that you download using 'binary'
mode. Please do not attempt to install this currently downloaded copy.

Verifiquei a integridade do pacote e após alguma pesquisa interna e externa, encontrei referências ao facto de que algumas versões nativas do comando "tar" não suportarem nomes longos de ficheiros (há referências ao limite de 100 caracteres em algumas discussões). Uma possível solução é obter, instalar e usar o GNU tar (um "tar" disponibilizado pela GNU foundation).
Tentei fazer a instalação da V12.10 em Linux e AIX 7.1 e não encontrei problemas. Em Linux isto é natural, pois o "tar" presente nas distribuições é normalmente o da GNU. É possível que alguns clientes já tenham o GNU tar instalado nos seus sistemas e possivelmente não irão ter este problema.
Aqui ficam um par de endereços que referenciam problemas semelhantes:
Se necessitar de fazer o download da versão GNU do "tar" para HP-UX este sitio parece ser uma opção, mas por favor confira com o seu administrador de HP-UX ou com o respetivo suporte técnico (dado que este sitio não é um local oficial da HP):

http://hpux.connect.org.uk/hppd/hpux/Gnu/tar-1.26/

Depois de ter o GNU "tar", terá de garantir que ele é usado preferencialmente ao standard da sua instalação de sistema operativo (definindo a variável de ambiente PATH). Após isso a instalação deverá correr sem mais problemas.
Neste momento está um PMR aberto na IBM para análise do assunto. No mínimo espero que isto seja referido na documentação ou num artigo público, embora o ideal fosse não ter dependência de produtos de terceiros para fazer a instalação.


Categorias: Blogs em Português

Edition changes / Mudanças nas edições

Informix-Techonology - qua, 03/04/2013 - 19:06

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:
One of the changes in version 12.10 refers to the editions. In each version there are several editions which try to address different markets and usage scenarios. I know for experience that customers don't like to see changes in editions. But I also am used to see a lot of confusion in the market about which editions exist, and the limits in each one.
One of the best sources to check this is an article on developerworks published by Carlton Doe a long time Informix guru. This page currently only addresses version 11 but accordingly to the webcast where 12.10 was announced, it should be updated soon.

I will not repeat the information here, but to give a very brief overview, some of the changes were:

  1. The Growth edition does not exist anymore. We went back to the original name of Workgroup Edition
  2. The Ultimate edition does not exist anymore. We went back to the original name of Enterprise Edition
  3. The Choice Edition (existed only for Mac and Windows) was removed
  4. The Express Edition (previously only in Linux) now exists for all the supported platforms
  5. The Editions that were called "Warehouse" changed their names to "Advanced" (Advanced Workgroup Edition and Advanced Enterprise Edition)
  6.  Most editions (Express, Workgroup, Enterprise and the Advanced Workgroup and Enterprise editions include IBM Mobile Database)
  7. In the Advanced editions users get some licenses of Cognos BI
  8. In the Advanced Enterprise Edition some SPSS components are also included
I believe that Express Edition is a new bet in the portfolio. It has licensing costs, but reasonable limits (4 CPUVPs, 8GB RAM, 1 secondary node, 2 ER nodes, and lacks parallel and partitioning features).
Naturally it all comes down to costs.

If you want to check and compare the different licenses you should check the formal license which is available from IBM site (http://www-03.ibm.com/software/sla/sladb.nsf). You'll have to search and the functionality is a bit strange. My advice is to search for "informix" and request entries after "2013/03/25". This will give you all Informix components in the version 12.10 release.

If you want shortcuts, please check the following URLs (note that these can change in the future, so please don't blame the messenger):


Versão Portuguesa:
Uma das alterações na versão 12.10 refere-se às edições. Em cada versão existem várias edições que tentam endereçar mercados e requisitos diferentes. Sei por experiência que os clientes não apreciam estas alterações. Mas também estou habituado  a ver muita confusão no mercado sobre que versões existem, e os limites de cada uma.
Uma das melhores fontes de informação sobre isto é um artigo no developerworks publicado por Carlton Doe um guru de longa data. Esta página atualmente apenas se refere à versão 11, mas pela informação dada no webcast de lançamento da versão 12.10, deverá ser atualizada brevemente.

Não vou repetir a informação aqui, mas apenas para dar uma breve visão sobre as alterações que foram feitas:
  1. A edição Growth deixou de existir. Voltámos à designação original de Workgroup
  2. A edição Ultimate deixou de existir. Voltámos à designação original de Enterprise
  3. A edição Choice (existia apenas para MAC e Windows) foi removida
  4. A edição Express (existia apenas para Linux) existe agora para todas as plataformas suportadas.
  5. As edições que se chamavam Warehouse mudaram os nomes para Advanced (Advanced Workgroup e Advanced Enterprise)
  6. A maioria das edições (Express, Workgroup, Enterprise, e as Advanced Workgroup e Advanced Enterprise incluém a IBM Mobile Database)
  7. Nas edições Advanced os utilizadores recebem algumas licenças de Cognos BI
  8. Na edição Advanced Enterprise são incluídos também alguns componentes do IBM SPSS
Acredito que a edição Express é agora uma forte aposta do portfolio. Tem custos de licenciamento, mas também limites razoáveis (4 CPUVPs, 8GB RAM, 1 nó secundário, 2 nós ER, e não permite utilização de paralelismo ou particionamento). Naturalmente no entanto tudo se resume a custos.

Se desejar verificar e comparar as diferentes licenças, deve consultar a licença formal que está disponível no site da IBM (http://www-03.ibm.com/software/sla/sladb.nsf). Terá de fazer uma pesquisa e o mecanismo é um pouco estranho. O meu conselho é que procure por "informix" e peça entradas posteriores a "2013/03/25". Isto dar-lhe-á todas as edições de produtos Informix incluídas na versão 12.10.

Se preferir atalhos, verifique os seguintes URLs (note que estes podem mudar no futuro, por isso não culpe o mensageiro):

Categorias: Blogs em Português

OLAP Window Functions

Informix-Techonology - sab, 30/03/2013 - 19:57

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português


English version:
In this article I'll mention  some new functionality in 12.1, but I'll use that to answer a recent question on IIUG mailing list. The question initially posted was about when did Informix update the index involved in a transaction. But after a few interactions with the original poster, it was clear what the problem was and it's a bit tricky:
The user was UNLOADing a table that contained a primary key and there were duplicate records (regarding the primary key) in the result set. This naturally looks like a bug, but there is a technical explanation for that. Let's describe a simple reproduction. For that I wrote three simple SQL scritps that will be run through dbaccess:

#-------- main.sql
DROP TABLE IF EXISTS test;
CREATE TABLE test
(
        col1 INTEGER,
        col2 INTEGER,
        col3 CHAR(2000),
        PRIMARY KEY (col1,col2)
)
EXTENT SIZE 16 NEXT SIZE 16
LOCK MODE ROW;

INSERT INTO test VALUES ( 1, 1, 'a');
INSERT INTO test VALUES ( 1, 2, 'a');
INSERT INTO test VALUES ( 1, 3, 'a');
INSERT INTO test VALUES ( 1, 4, 'a');
INSERT INTO test VALUES ( 1, 5, 'a');

BEGIN WORK;
UPDATE TEST SET COL3 = 'a1' WHERE col1 = 1 AND col2 = 3;
!/bin/sleep 30
COMMIT WORK;


#-------- unload.sql
SET LOCK MODE TO WAIT;
UNLOAD TO test.unl
SELECT *, ROWID FROM test;

#-------- move_rows.sql
BEGIN WORK;
DELETE FROM test WHERE col1 = 1 AND col2 = 1;
INSERT INTO test VALUES (1, 1, 'b');
COMMIT WORK;

The first script, called "main.sql" will create a table, with row level locking and a particularity that helps the reproduction: Each page will contain only one row. I did this on Linux where the default page size is 2KB. If you run it on AIX (4KB pages) please change the col3 definition to CHAR(4000). Then the script will populate the table with 5 rows. Note that I'm using a composite primary key, but a simple primary key or any unique index should be enough.
Then I start a transaction and do an update on row "3" and just after that I run an external command to sleep for 30 seconds before executing the COMMIT. This gives me plenty of time to run the other scripts in parallel.

Next script is called "unload.sql" and it simply runs an UNLOAD of that table after setting the LOCK MODE TO WAIT. As you may expect this script will be stuck on the lock created by the first one.

The third script has the "magic". It DELETEs a row with a certain primary key and INSERTs it again, but with a different col3 value.
I will use the following SHELL script to run the reproduction scripts:

#!/bin/bash
dbaccess stores main.sql 1>main.out 2>&1 &
sleep 5
dbaccess stores unload.sql 1>unload.out 2>&1 &
sleep 5
dbaccess stores move_rows.sql 1>move_rows.out 2>&1 &
wait

So... It runs the "main.sql" in background. Sleeps for 5 seconds (enough so that the "main.sql" is able to enter the sleep after locking record 3). Then is launches the "unload.sql" script which will be waiting on the first one, also in the background. And then it runs the script that DELETEs and INSERTs a row with a certain primary key.

This is the resulting unload file:
1|1|a|257|
1|2|a|513|
1|3|a1|769|
1|4|a|1025|
1|5|a|1281|
1|1|b|1537|

As you can see we have 6 rows in the file. And only 5 on the table. We have a problem.
The row with primary key (1,1) is duplicated. How can this happen? In order to understand it, we need to understand how the queries are processed and that Informix is not a multi-version database (just like SQL Server, DB2 in most cases, Sybase and some others).
The sequence of events is:

  1. We have a table with 5 rows. And we lock row number "3"
  2. In parallel we start a full scan of the same table. We read rows 1 and 2 and we get stuck on row number 3
  3. While we're still holding the lock we do another parallel operation where we remove row 1, and insert it again (with a different value for col3 for better understanding) on a different physical location
  4. We unlock row 3
  5. The full scan continues and reads row 1 again, on another physical location
If you're scared with this, don't be. This requires several factors to happen:
  1. You must access the table with a full scan
  2. You must DELETE a row that was already read, and INSERT the same row in a physical location yet to be read
  3. You need to DELETE and INSERT rows with the same primary key or unique index values
And there are ways to avoid this:
  1. Force an index scan
  2. Use some query condition that will skip rows that are inserted after your query starts (usable if the table has some sort of timestamp condition)
  3. Run the query in REPEATABLE READ isolation level
  4. Use a new functionality in 12.1
Most of the ways to avoid this effect may not be usable. The index scan can cause a serious performance impact. The timestamp condition depends on the table schema. The REPEATABLE READ will cause a lot of locks if the table is big, and would stop all change activity on the table (for that we could use a LOCK TABLE test IN SHARE MODE)
So, how can 12.1 help us avoid this? Well it introduces the so called OLAP window functions, and one example is ROW_NUMBER(). You might recall I've written an article about ROWNUM and there I stated that to achieve somethings we would need to change the engine. And that the proposed UDR on that article would have to be customized to implement PARTITION BY clauses. Well, with 12.1 we can use the standard syntax and we could write the UNLOAD query like:

UNLOAD TO test.unl
SELECT * FROM
(
SELECT
t.*, ROWID, ROW_NUMBER() OVER (PARTITION BY col1,col2) AS rown
FROM test t
)
WHERE rown = 1;

This looks a bit more complex, but it's not hard to understand.
I'm introducing the ROW_NUMBER() function, that will add a sequential number to each row, but with one particularity: The number will restart (1) for each pair of col1, col2 which I specify in the PARTITION BY clause. The result set is this one:
1|1|a|257|1|
1|2|a|513|1|
1|3|a1|769|1|
1|4|a|1025|1|
1|5|a|1281|1|

As you can see the new insert row is not there. Why? Because I have a constraint that the ROW_NUMBER() must be equal to one. If we remove it we get:
1|1|a|257|1|
1|1|b|1537|2|
1|2|a|513|1|
1|3|a1|769|1|
1|4|a|1025|1|
1|5|a|1281|1|

Note that I used ROWID and the ROW_NUMBER() in the projection clause, but that was only for academic purposes. ROWID shows the physical location and the result of ROW_NUMBER() shows how it works and how I used it.

There are many other OLAP window aggregate functions. You can discover them here and check on the PARTITION BY, ORDER BY and other clauses that can be used together.

It's important to note that the functionality of "OLAP window aggregates" introduced new aggregate functions, but it also extended the use of some "old" functions like SUM(), COUNT(), AVG() etc. which now allow the use of the OVER clause.
From an informix user perspective this is a great step forward, because some of these functions allows us to write SQL statements to generate reports that otherwise would require some programming. This means not only that the usability is improved, but also that Informix can now handle queries sent by BI tools (like Cognos and others). This is very important from a supportability point of view. These functions are present in other databases for some years and this was really something that was missing. This is even more important because queries with these functions can still benefit from the presence of the Informix warehouse accelerator. Meaning the BI user can take advantage of better integration with the tools normally used in BI environments and also from the speed provided by IWA.



Versão Portuguesa:
 Neste artigo vou referir uma nova funcionalidade da versão 12.10, mas irei usar isso para responder a uma questão que apareceu recentemente na lista de correio do IIUG. A questão original referia-se a quando é que o Informix atualiza os índices durante uma transação. Mas após algumas trocas de impressões parecia claro qual era o problema e é um pouco complexo:
O utilizador estava a fazer um UNLOAD de uma tabela que continha um chave primária e apareciam registos duplicados (relativamente à chave primária) no resultado. Naturalmente isto parecia um bug, mas há uma explicação técnica para o fato. Vamos descrever um procedimento simples que permite reproduzir o problema. Para tal temos três simples scripts SQL que serão executados através do dbaccess:

#-------- main.sql
DROP TABLE IF EXISTS test;
CREATE TABLE test
(
        col1 INTEGER,
        col2 INTEGER,
        col3 CHAR(2000),
        PRIMARY KEY (col1,col2)
)
EXTENT SIZE 16 NEXT SIZE 16
LOCK MODE ROW;

INSERT INTO test VALUES ( 1, 1, 'a');
INSERT INTO test VALUES ( 1, 2, 'a');
INSERT INTO test VALUES ( 1, 3, 'a');
INSERT INTO test VALUES ( 1, 4, 'a');
INSERT INTO test VALUES ( 1, 5, 'a');

BEGIN WORK;
UPDATE TEST SET COL3 = 'a1' WHERE col1 = 1 AND col2 = 3;
!/bin/sleep 30
COMMIT WORK;


#-------- unload.sql
SET LOCK MODE TO WAIT;
UNLOAD TO test.unl
SELECT *, ROWID FROM test;

#-------- move_rows.sql
BEGIN WORK;
DELETE FROM test WHERE col1 = 1 AND col2 = 1;
INSERT INTO test VALUES (1, 1, 'b');
COMMIT WORK;

O primeiro script chama-se "main.sql" e cria uma tabela com lock ao registo e esta tabela tem uma particularidade que ajuda à reprodução: Cada página de dados contém apenas um registo. Como executei isto em Linux, onde o tamanho pré-definido das páginas é de 2KB, usei um tamanho de CHAR(2000). Se executar em AIX por exemplo, onde a página será de 4KB, deverá usar CHAR(4000). Depois de criar a tabela, o script carrega 5 registos. Note que estou a usar uma chave primária composta, mas usar uma chave primária simples ou mesmo um índice único seria o mesmo.
Depois inicio uma transação e altero a linha "3", executando depois um comando externo que força uma pausa de 30 segundos antes de fazer o COMMIT. Isto dá-nos tempo mais que suficiente para executar os outros scripts em paralelo.

O próximo script chama-se "unload.sql" e executa um simples UNLOAD da tabela, depois de alterar o LOCK MODE para WAIT. Como seria de esperar, nestas condições o script irá ficar em espera pelo primeiro que causa um lock na linha "3".

O último script tem a "magia". Efetua um DELETE a uma linha com uma determinada chave primária e depois volta a fazer o INSERT de uma linha com essa mesma chave, mas um valor diferente na coluna "col3" (apenas por uma questão de clareza)
Usarei o script SHELL seguinte para executar os scripts SQL que reproduzem o problema:

#!/bin/bash
dbaccess stores main.sql 1>main.out 2>&1 &
sleep 5
dbaccess stores unload.sql 1>unload.out 2>&1 &
sleep 5
dbaccess stores move_rows.sql 1>move_rows.out 2>&1 &
wait

Portanto... Lança o "main.sql" em background, depois adormece durante 5 segundos (para garantir que o "main.sql" chega à parte em que cria o lock no registo "3"). De seguida lança o "unload.sql" que irá ficar bloqueado ao chegar ao registo "3", sendo que este também é lançado em backgroud. Por fim executa o script que efectua o DELETE e o INSERT da linha com determinada chave primária (1,1) e espera pelo retorno dos três processos.
O resultado do ficheiro de unload é:
1|1|a|257|
1|2|a|513|
1|3|a1|769|
1|4|a|1025|
1|5|a|1281|
1|1|b|1537|

Como pode verificar temos 6 linhas no ficheiro. E apenas 5 na tabela. Temos um problema.
A linha com a chave primária (1,1) aparece duplicada. Como pode tal acontecer? Para entedermos isto temos de entender como é que as queries são processadas e também que o Informix não é o que se designa por base de dados multi-version (bem como SQL Server, DB2 na maioria dos casos, Sybase e várias outras).
A sequência de eventos é:
  1. Temos uma tabela com 5 linhas e bloqueamos a linha "3"
  2. Em paralelo iniciamos um varrimento completo da tabela. Lemos as linhas "1" e "2" e ficamos bloqueados na linha "3"
  3. Enquanto ainda temos o lock, fazemos outra operação em paralelo onde se remove a linha 1 (já lida pelo varrimento) e inserimos novamente a mesma linha (com um valor diferente na coluna col3 para maior clareza) numa zona ainda não lida
  4. Desbloqueamos a linha "3"
  5. O varrimento continua e lê a linha 1 novamente, desta feita numa localização física diferente
Se isto o assusta, sossegue. São necessários vários fatores para que tal aconteça:
  1. O acesso à tabela tem de ser feito por varrimento (full scan)
  2. Tem de existir um DELETE a uma linha já lida, e um INSERT da mesma linha (em termos de chave primária), numa localização física que ainda vá ser acedida pelo varrimento
  3. Tem de fazer o DELETE e INSERT de linhas com o mesmo valor da chave primária (ou de valores de índices únicos)
E existem formas de evitar isto:
  1. Forçar o acesso por índice
  2. Usar alguma condição na query que faça descartar linhas inseridas após o início da query (pode ser feito se a tabela contiver algum tipo de "carimbo" com o momento de inserção
  3. Executar a query no modo de isolamento REPEATABLE READ
  4. Usar uma nova funcionalidade da versão 12.1
A maioria das formas de evitar o problema podem não ser práticas. O acesso por índice pode ter impactos sérios na velocidade de execução da query. A condição adicional depende da estrutura da tabela e forma de inserção dos registos. O REPEATABLE READ irá causar imensos locks se a tabela for grande, e impediria toda a atividade de alteração sobre a tabela durante a execução da query. Aliás nessa situação seria melhor bloquear a tabela em modo SHARE)
Assim, como pode a versão 12.10 ajudar-nos a evitar isto? Bom, esta versão introduz o que se chamam de OLAP window functions. Um exemplo será a função ROW_NUMBER(). Poderá lembrar-se que escrevi um artigo sobre o tema, onde mencionei que para alcançar algumas funcionalidades seria necessário alterar código interno do motor. E que a proposta função (UDR) desse artigo necessitaria de ser adaptada a cada caso, se desejássemos implementar as cláusulas PARTITION BY. Bom, com a versão 12.10 temos acesso à sintaxe standard e podemos reescrever o UNLOAD da seguinte forma:

UNLOAD TO test.unl
SELECT * FROM
(
SELECT
t.*, ROWID, ROW_NUMBER() OVER (PARTITION BY col1,col2) AS rown
FROM test t
)
WHERE rown = 1;

Isto parece um pouco mais complexo, mas não é difícil de entender.
Apenas introduzi a função ROW_NUMBER() que irá adicionar um número sequencial a cada linha, mas com uma particularidade: O número será re-inicializado (1) para cada par das colunas col1, col2 tal como especifico com a cláusula PARTITION BY. O resultado será assim:
1|1|a|257|1|
1|2|a|513|1|
1|3|a1|769|1|
1|4|a|1025|1|
1|5|a|1281|1|

Como pode ver a nova linha inserida não aparece. Porquê? Porque a nova query tem uma condição que elimina registos onde o resultado do ROW_NUMBER() não seja 1. Se removermos esta condição passaremos a ter no resultado isto:
1|1|a|257|1|
1|1|b|1537|2|
1|2|a|513|1|
1|3|a1|769|1|
1|4|a|1025|1|
1|5|a|1281|1|

Convém referir que o uso do ROWID e ROW_NUMBER na lista de colunas da lista de projeção é meramente académico. O ROWID mostra a localização física da linha e o ROW_NUMBER serve para mostrar como funciona e como o usei.

Existem muitas outras funções OLAP window aggregates. Pode descobri-las aqui e verificar as cláusulas PARTITION BY, ORDER BY e outras que podem ser usadas em conjunto.

É importante notar que esta nova funcionalidade introduziu novas funções, mas também estendeu a utilização de algumas funções "antigas" como o SUM, COUNT(), AVG() etc. que agora permitem usar a cláusula OVER
Da perspetiva de um utilizador Informix, isto é um grande passo em frente, porque algumas destas funções permitem-nos escrever queries SQL para gerar relatórios que de outra forma necessitariam de algum tipo de programação. Isto significa que não apenas se melhorou a utilização, mas também que o Informix pode agora lidar com queries enviadas por ferramentas de BI (como Cognos e outras). Isto é muito importante do ponto de vista do suporte a aplicações. Estas funções já existem noutras bases de dados há vários anos e esta era realmente uma falha que foi agora colmatada.
Há ainda a registar que queries com estas funções podem mesmo assim beneficiar da presença do Informix Warehouse Accelerator (IWA). Quer isto dizer que o utilizador de BI pode aproveitar a melhor integração com as ferramentas normalmente usadas nesses ambientes e ao mesmo tempo aproveitar também a velocidade proporcionada pelo IWA.

Categorias: Blogs em Português

Informix 12.10 is ready / Informix 12.10 está pronto

Informix-Techonology - sex, 29/03/2013 - 09:07

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português



English version:
As we should all know by now, IBM announced the next major Informix version last Tuesday, March 26 with a webcast that is available for replay here.
I must confess I was a bit surprised with the webcast format. Being an IBMer, I was in touch with this new release and I knew most (if not all) the new features. And I was expecting a mostly technical session going through all the bits and bytes. Instead of that we got something that we're not used to in "informix land": A strategic positioning of the product and current direction with the focus on the main differentiation points. More importantly we got a partner going through their real world experience with the beta versions of the product, and some simple but effective graphics of the performance achievements.

I believe that from my own internal knowledge and from the webcast I can say that the main focus points of this release are (and I'm not going technical here/yet) with no particular order:

  • TimeSeries data
    No other database has incorporated so much technology and effort for this. And while the classical usage examples are the smart meters, I believe we're still missing the point because there are so many "time series" sources out there (weather data, demographic data, smart cities data including traffic, people movement, noise data, air quality data etc..)
  • Warehouse enhancements
    The Informix Warehouse Accelerator is really a unique product. Mix OLTP and BI use in the same system. Use in-memory technology. Allow for "self service" BI. Unprecedented low maintenance and ease of use. And this release brings the so called OLAP functions, or windowed aggregates, things like RANK(), LEAP(), ROWNUM() etc. These were lacking in Informix so it's the elimination of a gap
  • Grid enhancements
    Again, I believe no other RDBMS has this capability as Informix provides. And the new grid queries open up a whole new world
  • Usability
    The improvements in OAT. The SQL compatibility enhancements. More dynamic parameters. A datablade with many competitor functions for compatibility. The removal of some limitations in non-root installations and much more
  • Changes in editions and bundling
    This point will always raise some discussion. In terms of names we went back to the workgroup and enterprise names, while there are other bundlesspecially for data warehouse environments which include some licenses for Cognos and SPSS. These ones have advanced in their names. Naturally there are technical and legal restrictions on their usage, so choosing between the several editions requires a careful analysis of their licensing terms
There is also another perspective to look at this release.... There are a few things that are a bit harder to understand about some of the new features... Things like temp structures column elimination, faster ANSI joins and others that are not even mentioned (just check out the new sysmaster.sql) reflect a lot of hard work in the background that it's not easily translated into "features".

I was also surprised with the release process. Unfortunately we're used to see the software on Passport Advantage or FixCentral, then wait for the InfoCenter, than the PDF manuals.... And all these take a few days until it eventually is all available. This time I was able to download the software before the webcast. The InfoCenter was up and running, and the PDFs containing the manuals were available individually, and the whole PDF pack took one or two days. Again this was a very good surprise. I just hope we can keep it for the upcoming fixpacks.

As for the technical bits and bytes, I will try to catch up on the post rates while I cover some of the new features. For now, if you're interested (and you should be), please check the "What's new" link in InfoCenter



Versão Portuguesa:

Como todos já devemos saber, a IBM anunciou a próxima versão do Informix na passada terça-feira, 26 de Março, num webcast que está disponível para rever aqui.
Tenho de confessar que fiquei um pouco surpreendido com o formato da apresentação. Sendo um IBMer, tinha já algum contacto com esta nova versão e conhecia a maioria (senão todas) das novas funcionalidades. E estava a aguardar uma sessão essencialmente técnica que explicasse todos os bits e bytes. Em vez disso observámos algo a que não estamos muito habituadas no "mundo informix": Um posicionamento estratégico do produto, com a visão e direção atual, e o foco nos principais pontos diferenciadores. Ainda mais importante, tivemos a presença de um parceiro que descreveu a sua experiência com situações reais usando as versões beta do produto, e alguns gráficos simples mas eficientes que demonstraram significativos ganhos de performance com esta versão.

Penso que juntando as mensagens internas e este webcast, se pode dizer que os principais pontos desta nova versão são (não vou abordar aspetos técnicos aqui/ainda), sem nenhuma ordem especial:
  • Dados TimeSeries
    Nenhuma outra base de dados incorporou tanta tecnologia e esforço para isto. E se por enquanto o exemplo clássico são os contadores inteligentes (smart meters) penso que ainda estamos a falhar oportunidades, porque existem tantas fontes de dados timeseries por aí (dados de clima, dados demográficos, dados de smart cities incluindo medições de tráfego, movimentos de pessoas, medidas de ruído, qualidade do ar etc...)
  • Melhorias para Warehouse
    O Informix Warehouse Accelerator é realmente um produto único. Misturar utilização OLTP e BI no mesmo ambiente. Uso de tecnologia in-memory. Baixa manutenção e facilidade de uso sem precedentes. Permitir BI self service. E esta versão traz as funções OLAP windowed aggregates, coisas como o RANK(), LEAP(), ROWNUM() etc. Estas faziam falta ao Informix há bastante tempo, pelo que se trata da eliminação de uma falta
  • Melhoramentos em Grid
    Novamente, julgo que nenhuma outra base de dados relacional tem a capacidade demonstrada pelo Informix. E as novas grid queries abrem todo um novo mundo
  • Facilidade de utilização
    As novas funcionalidades no OAT. A melhoria de compatibilidade de SQL. Mais parâmetros dinâmicos. Um datablade com várias funções compatíveis com a concorrência. A remoção de algumas limitações em instalações sem recurso a root
  • Alteração nas edições
    Este aspeto será sempre polémico. Em termos de nomenclatura voltou-se ao workgroup e enterprise, havendo outras edições pensadas para data warehouse que incluem licenças para alguns utilizadores de Cognos e SPSS. Estas designam-se por advanced. Naturalmente algumas edições têm limitações legais e/ou técnicas ao seu uso, e a escolha de uma em vez de outra requer uma análise cuidada aos termos de licenciamento
Existe ainda outra perspetiva sobre esta nova versão.... Há algumas coisas que não são fáceis de compreender relativamente às novas funcionalidades.... Coisas como a eliminação de colunas em estruturas temporárias (como tabelas derivadas), joins ANSI mais rápidos, e outras que nem são mencionadas (verifique por exemplo o novo sysmaster.sql) refletem um significativo trabalho  de bastidores que nem sempre é fácil traduzir em novas funcionalidades

Fiquei também surpreendido com o processo de publicação e disponibilização de ficheiros e manuais. Infelizmente estamos habituados a ver o software no site Passport Advantage ou FixCentral, depois esperar pela atualização do InfoCenter, depois os manuais em formato PDF... E tudo isto demora alguns dias até estar realmente disponível. Desta vez consegui transferir o software, antes do inicio do webcast. O InfoCenter estava disponível e os PDFs dos manuais estavam disponíveis individualmente. O pacote completo de manuais demorou um ou dois dias a aparecer. Esta foi outra das boas surpresas deste lançamento. Espero que consigamos manter este procedimento para os futuros fixpaks

Quanto aos detalhes técnicos tentarei retomar um bom ritmo de artigos enquanto tento abordar algumas das novas funcionalidades. Por agora, se estiver interessado (e deverá estar) verifique o link "What's new" no InfoCenter

Categorias: Blogs em Português

NOVO - IBM Informix 12.1 : Simplesmente Poderoso!!!

InformixBR - ter, 26/03/2013 - 15:59


Hoje oficialmente foi anunciado via webcast a nova versão do IBM Informix V12.1!
IBM Informix é um dos servidores de banco de dados mais utilizados no mundo, com usuários que vão desde as maiores corporações do mundo até start-ups. O Informix incorpora conceitos de design que são significativamente diferentes das tradicionais plataformas relacionais, resultando em níveis extremamente elevados de performance e de alta-disponibilidade, conta ainda com diversas capacidades de replicação de dados e escalabilidade, tudo isso com a mínima necessidade de administração. 
Dentre os principais pontos da nova versão, destacam-se:

  • Informações Analíticas em tempo real (columnar+in-memory)
  • Transações Rápidas, sempre disponíveis (Mach 11)
  • Gerenciamento de dados provenientes de sensores (GPS, Temperatura, Medições no tempo, etc...)
  • Big Data (Time Series, Operational Analytics)
  • Super fácil de usar (Autonomic computing, OAT, PureSystem Hypervisor)
  • Best-of-breed embeddability (aplicações embutidas)

Acesse a pagina oficial do produto e saiba mais sobre a nova versão do IBM Informix V12.1, e não deixe de assistir o video de divulgação aqui


 InformixBR

Categorias: Blogs em Português

12.10 on the loose / 12.10 anda à solta

Informix-Techonology - ter, 26/03/2013 - 12:25

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

Just before today's webcast that will announce the next major Informix version (12.10) it was seen on the FixCentral site.
Start the download while you listen at the webcast. You'll have plenty of time to download it and install it while you learn what's new!

Versão Portuguesa:

A versão 12.10 já está disponível no site FixCentral, mesmo a tempo do webcast que irá anunciar a próxima major version.
Comece o download enquanto assiste ao webcast. Terá tempo suficiente para fazer a transferência e instalação enquanto ouve o que tem de novo.

Categorias: Blogs em Português

Analytics: How fast do you think? / Analytics: Quão rápido consegue pensar?

Informix-Techonology - sex, 08/03/2013 - 21:30

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

I was educating myself on the Internet when I came across another IT jargon expression, or another buzzword. The IT industry is very prolific when it comes to creating buzzwords. And we the technical people usually look at those ideas with some distrust. But although this is used by the marketing teams to promote products, increase sales and create awareness and needs on the customers, they actually summarize perfectly concepts that are in some cases very complex. Take "SOA" (Service Oriented Architecture), BigData and so on as examples. Many people use them (and some even assume they need it) without really understanding them. But why am I going through this? Because I was hit by a new buzzword that I can really map to something I know and that really describes the power of that "thing" I know... Let's start by the buzzword first: "Analytics at the speed of thought". It has been used for years to describe products, concepts and technologies that try to provide exactly that: The ability to analyze data at the speed you think... But let's go back a little bit... What is "data analysis"? Well we can consider it a big umbrella, and depending on your background, fit things like reporting, market segmentation, CHURN, market basket analysis etc. But IT departments have been doing this and providing this to business users for a long time. Datawarehouses, datamarts and so on. Everybody has them. But as usual, that's not enough... We're constantly pushing the limits and trying to take advantage of latest technology improvements. And now we're getting to a point where we can "explore" the data that we have... The idea is not to have a report on our desk each morning that took part of the night to run... These reports can contain some very valuable business data that tells us how things are going... which customer are about to leave us etc. The idea is that we can, and should, use the data to explore new business ideas, to create virtual scenarios and in summary, to learn things that we never though about before. And that requires the ability to process data at our speed... and our speed is the speed of thought... I'm sure yours is not slower than mine, and I'd like to think mine is pretty quick (not always I must admit!). The big point is that if you have an idea, an hypotheses, and you need to verify if your business data confirms it, you don't want to wait large minutes or even hours for your query. By the time it returns you lost your focus, and the creativity is wasted. You need the system to answer you in a few seconds... 1 or 2 minutes... Not much more.
But is it possible? Well, yes! And the solution depends on your environment.
As you can imagine, and since this an Informix blog I think we have a solution. Critics will probably be thinking that the solution is BigData, not an "OLTP database" like Informix. Well... I wouldn't replace a true BigData system that crunches thousands of Terabytes (think about Google, YouTube etc.) of non-structured data with Informix... But let me ask you... How many of us work in those kind of environments? For the "common people" we need something that is simple, that works, that's fast and that doesn't require highly qualified engineers and true "data scientists".
And now, yes, I can tell you what I'm thinking about: Informix Warehouse Accelerator. I've mentioned it before, and I've published a reference to a video that explains the raw concepts much better than what I'll ever be able to do. But in short it:

  • Is a new generation in-memory database
  • Takes advantage and is completely adjusted to new chips technology
  • Is designed to scale just by adding a new machine (or node)
  • Is transparent to the regular applications and to any application that can use JDBC, ODBC etc.
  • Is tightly coupled with your regular database that you can use for your OLTP needs
  • It's amazingly fast (yes... Speed of Thought)... Allows the "think", click, look at the results, "rethink", click again, look at new results type of work
  • It's unbelievable simple to setup and use
  • Fit's your real size... it was made for you... Not for the "big boys" and then pushed down the marketing channels to the average business customers
The IBM Informix R&D understands that there is a real market need for a product with these characteristics. And as usual, they try their best to follow the right directions. I believe we can expect a great focus on this in the next major Informix version. If you want to find out more don't forget to attend the public webcast on March 26. I'm sure you'll not be disappointed. Details and registration are here: http://t.co/bpOIJiFnCJ


Versão Portuguesa:

Estava a educar-me na Internet quando me cruzei com mais uma expressão ou jargão de TI, ou usando o termo Inglês uma buzzword. A área de Tecnologias de Informação é muito prolífica no que toca a criar estes chavões ou expressões. E nós o pessoal técnico, costumamos olhar para elas com alguma desconfiança. Mas apesar de estes conceitos serem criados e usados pelas equipas de marketing para promover produtos, aumentar vendas e criar consciência e necessidades nos clientes, a verdade é que resumem de forma perfeita conceitos que são algumas vezes bastante complexos.
Veja-se os casos de "SOA" (Service Oriented Architecture), BigData etc. Muitas pessoas usam estes termos, e até assumem que necessitam das ideias, mesmo sem que as compreendam muitas vezes.
Mas porque é que estou a navegar nestes temas? Bom, porque fui "atingido" por um destes chavões, mas que consigo realmente mapear para algo que conheço e que efetivamente descreve plenamente o potencial dessa "coisa" que eu conheço... Mas comecemos primeiro pelo "chavão": "Analytics à velocidade do pensamento" (decidi não traduzir "analytics" por manifesta dificuldade e porque penso que o termo é suficientemente conhecido). Este chavão tem sido usado há anos para descrever produtos, conceitos e tecnologias que tentam providenciar exatamente isso: A capacidade de analisar dados à velocidade que pensamos sobre eles... Mas recuemos um pouco.... O que é a "análise de dados"? Podemos considerar que é um grande toldo, e dependendo do seu contexto, lá podemos encaixar coisas como elaboração de relatórios, segmentação de mercado, CHURN, análise de cestos de compras etc. Mas os departamentos de informática têm feito isto e fornecido estas capacidades aos departamentos de negócio desde há longo tempo. Datawarehouses, Datamarts etc. Toda a gente os tem, toda a gente os usa. Mas como é hábito, isso tende a não ser suficiente. Estamos constantemente a tentar ultrapassar os limites e a tentar tirar mais proveito dos últimos avanços na tecnologia e do natural aumento de capacidade dos sistemas. E agora estamos num ponto em que podemos "explorar" os dados que temos... A ideia não é ter um relatório na nossa secretária de manhã que terá levado parte da noite a ser gerado... Estes relatórios podem conter alguma informação preciosa que nos diz como as coisas estão a correr... que clientes estão em risco de nos deixar etc... Mas a ideia é que podemos, e devemos, usar os dados para explorar novas ideias sobre o negócio, criar cenários virtuais, em suma aprender coisas que não sabíamos. E isso requer a capacidade de processar os dados à nossa velocidade.. e a nossa velocidade é a velocidade do pensamento. Aposto que a sua não é inferior à minha, e gosto de pensar que a minha é bastante rápida (tenho de admitir que nem sempre!).  O facto é que se temos uma ideia, uma hipótese, e se precisamos de confirmar se os nossos dados de negócio a verificam, não queremos nem podemos esperar longos minutos ou mesmo horas pelo resultado de uma query. Quando chegasse o resultado o nosso foco ter-se-ia perdido e a nossa criatividade teria sido desperdiçada. Precisamos que os sistemas respondam em alguns segundos... 1 ou 2 minutos... Não muito mais que isso.
Mas tal será possível? Sim! E a solução depende do seu ambiente.
Como é fácil de imaginar, e porque isto é um blog dedicado a Informix, julgo que temos uma solução. Os críticos irão desde já pensar que a solução é BigData, não uma "base de dados OLTP" como o Informix. Bom... Eu não trocaria um verdadeiro sistema BigData que "mastigue" milhares de Terabytes de informação não estruturada (pensemos no Google, YouTube etc.) por Informix... Mas deixe-me perguntar... Quantos de nós trabalhamos nesse tipo de ambientes? Para os "comuns mortais" precisamos de algo que seja simples, que funcione, que seja rápido e que não necessite de um exército de engenheiros altamente qualificados e verdadeiros data scientists.
E agora sim, posso revelar aquilo em que estou a pensar: Informix Warehouse Accelerator. Já o mencionei antes, e já publiquei uma referência a um vídeo que o pode explicar melhor do que alguma vez serei capaz. Mas em resumo:
  • É uma base de dados in-memory de última geração
  • Aproveita e está completamente ajustado à tecnologia dos últimos CPUs
  • Está desenhado para crescer pela simples adição de mais máquinas (ou nós)
  • É transparente para as aplicações habituais e para qualquer aplicação que "fale" JDBC ou ODBC
  • Está intimamente ligado com a base de dados "normal" que pode usar para OLTP
  • É espantosamente rápido (sim... velocidade do pensamento)... Permite o ciclo "pense", click, veja os resultados, "repense", click novamente e veja os novos resultados
  • É inacreditavelmente fácil de instalar  e usar
  • Ajusta-se ao tamanho real do seu negócio. Foi feito para si. Não é algo criado para os "gigantes" que depois foi empurrado para baixo pelos canais de marketing até chegar ao negócio médio
O departamento de I&D da IBM Informix compreende que existe uma necessidade real no mercado para um produto com estas características. E como é hábito tentam seguir a direção correta. Penso que podemos esperar um foco significativo nesta área na próxima versão do Informix. Se desejar saber mais sobre o tema não se esqueça de assistir ao webcast público no dia 26 de Março. Estou convencido que não sairá desapontado. Os detalhes e registo estão em: http://t.co/bpOIJiFnCJ





Categorias: Blogs em Português

Audit for all... / Audit para todos...

Informix-Techonology - dom, 03/03/2013 - 19:59

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

In a recent post on the IIUG mailing list, a customer asked if it was possible to configure the audit facility on secondary servers (HDR, RSS and SDS). The author mentioned that by definition those servers were read only... Well, although that's not necessarily true since 11.50, the question does make sense because in earlier versions it was not possible. Thankfully, an IBMer promptly replied that "yes, if you're on 11.50". And it's true... but to be more precise, you need to be at least on 11.50.xC6.

The interesting aspect about this, is that in fact the functionality was introduced in 11.50.xC6, but it was not mentioned in the release notes. And the 11.50 manual was not completely updated and still mentions that it's not possible. The v11.70 manual was corrected in the onaudit utility section, but still mentions it's not supported in another section (PMR opened for documentation fixing).

So, bottom line, regardless of the documentation issues and lack of information, is that we can audit on secondary servers. The only restriction is that the audit masks are defined only on the primary server. I believe it would be nice to have audit masks for each server role, but I don't think this is a major limitation.


Versão Portuguesa:

Numa mensagem recente na lista de correio do IIUG, um cliente perguntou se era possível configurar o sistema de audit nos servidores secundários (HDR, RSS e SDS). O autor mencionava que por definição esses servidores estão em modo de leitura apenas... Bem, apesar de isso não ser necessariamente verdade desde a v11.50, a questão faz sentido porque em versões antigas isso não era possível. Felizmente um IBMer respondeu rapidamente, dizendo "sim se estiver na v11.50". E é verdade... embora para ser mais preciso, se tenha de estar pelo menos na v11.50.xC6.

O aspeto interessante disto, é que de facto a funcionalidade foi introduzida na v11.50.xC6, mas não foi mencionada nas notas (release notes) dessa versão. E o manual da v11.50 não foi completamente atualizado e ainda menciona que não é possível. O manual da v11.70 foi corrigido na secção sobre o utilitário onaudit, mas ainda mantém que não é suportado noutra secção (PMR para correção da documentação já foi aberto).

Assim, em resumo, independentemente de todos os problemas na documentação e a falta de informação, a verdade é que se pode utilizar o audit nos servidores secundários. A única restrição é que as máscaras de audit têm de ser definidas no servidor primário e aplicam-se a todos os servidores onde se ligue o audit. Acredito que seria bom ter máscaras de audit para cada estado do servidor, mas não me parece que seja uma limitação muito séria

Categorias: Blogs em Português

CASTing

Informix-Techonology - ter, 26/02/2013 - 19:57

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

I recently exchange some information with a person who is deeply involved with Eclipse and Hybernate. This person complains (not necessarily without reason) that these tools support for Informix is poor (or that Informix doesn't support some things used by these frameworks that apparently are supported by other databases). In these cases, sometimes patches are built for the tools, or some improvements are made on the engine. But there is yet another option that may work sometimes.... The last interaction refers to the way we allow BOOLEAN literals to be written. By default we use "t' for TRUE and 'f' for FALSE. Other systems apparently support 1 and 0 for example.
So, what's the third alternative? Simply use Informix extensibility to fulfill some functionality that is missing. Let's see an example:

DROP TABLE IF EXISTS test_boolean;
CREATE TABLE test_boolean
(
        col1 BOOLEAN
);
INSERT INTO test_boolean VALUES (1);

If we run this on a v11.70.xC7 version we get:

9632: Value does not match the type of column (col1).

This happens because the INSERT expects a BOOLEAN and we're providing an INTEGER. But similar situations (data type conversion) sometimes happen without error. Why? Because the engine knows how to convert between those types. And we can "teach it" more casts. Let's change the test case a bit:

DROP TABLE IF EXISTS test_boolean;
DROP FUNCTION IF EXISTS cast_int_to_boolean;
DROP CAST IF EXISTS (INT AS BOOLEAN);

CREATE TABLE test_boolean
(
        col1 BOOLEAN
);

CREATE FUNCTION cast_int_to_boolean (i INT) RETURNING BOOLEAN;
IF i = 1 THEN
        RETURN 't';
ELSE
        RETURN 'f';
END IF;
END FUNCTION;

CREATE IMPLICIT CAST (INT AS BOOLEAN WITH cast_int_to_boolean);
INSERT INTO test_boolean VALUES (1);
INSERT INTO test_boolean VALUES (0);
SELECT * FROM test_boolean

Now, this returns

col1

   t
   f

Why? Because now the engine knows how to convert between the INTEGER we're providing and the BOOLEAN that it requires.
This also works when we run:

SELECT * FROM test_boolean WHERE col1 = 1;

The result is:

col1

   t

This happens because the engine tries to cast the integer we provide (1) to the column type. If it tried to do the opposite it would fail because it still doesn't know how to convert a BOOLEAN to INT.
This can be seen if we run:

SELECT col1::INT FROM test_boolean WHERE col1 = 1;

and we get:

9634: No cast from boolean to integer.

Naturally we can overcome this if we create a new cast (BOOLEAN to INT) like this:

CREATE FUNCTION cast_boolean_to_int (i BOOLEAN) RETURNING INT;
IF i  THEN
        RETURN 1;
ELSE
        RETURN 0;
END IF;
END FUNCTION;
CREATE IMPLICIT CAST (BOOLEAN AS INT WITH cast_boolean_to_int);

And then we get:

col1

   1

So, yet another example about how to take advantage of Informix extensibility to overcome some annoyances. In any case, just a few warnings:

  • I used functions written in SPL. As I've shown before, this may not be the ideal in terms of performance. A C UDR would be better from that point of view
  • The CAST will only allow the engine to understand other ways to represent the BOOLEAN values. It will not change the default representation when you do a SELECT. This may still confuse the tools (?)
  • It would be better if the tools recognize the database particularities. This method would force the user (DBA) to create and possibly maintain functions in every database used by the tools
  • For simplicity I assumed 1 as TRUE and anything else as FALSE. It would be better to accept only 1 and 0 and raise an exception on anything else
Some references:



Versão Portuguesa:

Recentemente troquei impressões com alguém que está bastante envolvido com Eclipse e Hybernate. A pessoa em causa queixa-se (não necessariamente sem razão), que o suporte ao Informix destas ferramentas é pobre (ou que o Informix não suporta algumas coisas que estas frameworks usam e que são suportadas por outras bases de dados). Nestes casos, algumas vezes são criadas correções nas ferramentas ou alguns melhoramentos são feitos no motor. Mas existe ainda outra opção que pode funcionar em algumas situações... Na última interação discutimos a forma como aceitamos que expressões BOOLEAN sejam representadas. De base o Informix usa o "t" para verdadeiro (TRUE) e "f" para falso (FALSE). Aparentemente outros sistemas aceitam o 1 e o 0 por exemplo.
Portanto, qual é a terceira alternativa? Simplesmente usar a extensibilidade do Informix para preencher algum vazio de funcionalidade. Vejamos um exemplo:

DROP TABLE IF EXISTS test_boolean;
CREATE TABLE test_boolean
(
        col1 BOOLEAN
);
INSERT INTO test_boolean VALUES (1);

Se executarmos isto numa instância na versão 11.70.xC7 obtemos:

9632: Value does not match the type of column (col1).

Isto acontece porque o INSERT espera um BOOLEAN e estamos a fornecer um INTEGER. Mas situações semelhantes (conversão de dados) podem acontecer sem erros. Porquê? Porque o motor sabe como converter entre esses tipos de dados. E nós podemos "ensinar-lhe" mais CASTs. Vamos modificar o caso de teste um pouco:

DROP TABLE IF EXISTS test_boolean;
DROP FUNCTION IF EXISTS cast_int_to_boolean;
DROP CAST IF EXISTS (INT AS BOOLEAN);

CREATE TABLE test_boolean
(
        col1 BOOLEAN
);

CREATE FUNCTION cast_int_to_boolean (i INT) RETURNING BOOLEAN;
IF i = 1 THEN
        RETURN 't';
ELSE
        RETURN 'f';
END IF;
END FUNCTION;

CREATE IMPLICIT CAST (INT AS BOOLEAN WITH cast_int_to_boolean);
INSERT INTO test_boolean VALUES (1);
INSERT INTO test_boolean VALUES (0);
SELECT * FROM test_boolean

Agora, isto retorna
col1

   t
   f

Porquê? Porque agora o motor sabe como converter entre o INTEGER que estamos a fornecer e o BOOLEAN que está à espera.
Isto também funciona quando corremos:

SELECT * FROM test_boolean WHERE col1 = 1;

e obtemos:

col1

   t

Isto acontece porque o motor tenta converter o INTEGER que fornecemos (1) para o tipo de dados da coluna. Se tentasse fazer o oposto, falharia porque ainda não sabe como converter um BOOLEAN to INTEGER
Isto pode ser verificado se executar-mos:

SELECT col1::INT FROM test_boolean WHERE col1 = 1;

e obtemos

 9634: No cast from boolean to integer.

Naturalmente podemos ultrapassar isto de criar-mos um novo CAST (BOOLEAN para INTEGER) desta forma:

CREATE FUNCTION cast_boolean_to_int (i BOOLEAN) RETURNING INT;
IF i  THEN
        RETURN 1;
ELSE
        RETURN 0;
END IF;
END FUNCTION;
CREATE IMPLICIT CAST (BOOLEAN AS INT WITH cast_boolean_to_int);

E obtemos:

col1

   1

Temos assim mais um exemplo das vantagens da extensibilidade do Informix, e de como a podemos utilizar para ultrapassar algumas inconveniências. Em todo o caso, alguns avisos:
  • Usei funções escritas em SPL. Conforme eu já mostrei antes, isto pode não ser o ideal em termos de performance. Um UDR em C seria melhor desse ponto de vista
  • O CAST apenas permite ao motor entender outras representações para valores BOOLEAN. Não muda a forma como o motor representa esses valores por omissão, quando se faz um SELECT . Isto poderá confundir as ferramentas (?)
  • Seria melhor que a ferramenta reconhecesse as particularidades de cada base de dados. Este método forçaria o utilizador (DBA) a criar e possivelmente manter funções em cada base de dados onde deseje utilizar as ferramentas
  • Por simplicidade assumi o 1 como verdadeiro e qualquer outra coisa como falso. O mais correto seria assumir 1 como verdadeiro, 0 como falso e causar uma excepção para qualquer outro valor
Algumas referências:

Categorias: Blogs em Português

Descubra o que vem por ai na nova versão do Informix

InformixBR - seg, 11/02/2013 - 08:25

acesse aqui e prepare-se para as novidades que estão saindo do forno :)


InformixBR

Categorias: Blogs em Português

Chegou a hora ! Vamos VOTAR !

Information X - sab, 09/02/2013 - 08:22

Pessoal.
O Board do IIUG está sendo composto novamente para 2013.

'don't forget to vote!'

IIUG - Election time IIUG Board of Directors 2013The 2011 IIUG Board of Directors is a diverse group of users, partners and IBM employees from all over the world. The current IIUG Board will complete its term soon. In preparation for the upcoming election of the 2013 IIUG Board, a Nominating Committee has been established chaired by former Board Member James Edmiston. The committee is currently seeking candidates to run for the 2013 IIUG Board of Directors. If you have a passionate interest in Informix products, and the drive, vision, and commitment to lead and represent the world's most influential community of Informix users, please give your potential nomination serious thought. Nominations will be accepted February 18, 2013 through March 4, 2013 and the election will take place shortly thereafter.
For additional info, visit: http://www.iiug.org/about/election.php.
If you would like to nominate yourself or a colleague, please contact the IIUG Nominating Committee by writing to board-election@iiug.org.
James Edmiston
Former IIUG Board Member
IIUG Elections Commissioner 2013
board-election@iiug.org


To validate or change your IIUG membership data and preferences, and to access member-only services, please click on the following link:http://www.iiug.org/cgi-bin/fglcl.cgi?membupd&A22811&AOLIVEIRA&Afernando_fo@hotmail.com



Boa sorte e abraços.
FFO

Categorias: Blogs em Português

Gartner MQ Data Warehouse DBSMs

Informix-Techonology - qui, 07/02/2013 - 19:59

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

While we wait for the upcoming webcast about Informix's new version (The new IBM Informix: It's simply powerful), new interesting things are happening... A few days ago, Fred Ho pointed out that the Gartner 2012 Magic Quadrant for Data Warehouse Database Management Systems was published and that it mentioned Informix.
If you don't follow this kind of analysts publications you may not know the impact they have on large customers and the talks generated around it. It's huge.
To be honest, the reference to Informix does not appear as a positive statement. Basically it says that the only real in-memory technology that IBM has around the datawarehouse area is Informix Warehouse Edition and that IBM should increase the capabilities in this kind of technology to stay competitive.
So, you may wonder why I'm so interested in this report? Well, surely, working for IBM I appreciate the fact that we moved along the "completeness of vision" axis, getting closer to the leader - Teradata - , but this blog is about Informix....
Fred Ho already made some very interesting comments about the recent evolution of the Informix Warehouse Accelerator, but I'd like to highlight a few others...:

  • From a brief search, the last time Informix was mentioned in a Gartner report was in 2001, and it did not look good. Gartner wrote at the time that IBM's strategy for Informix was not reassuring for customers
  • Informix warehouse accelerator is really IBM's offering for in-memory DW. As mentioned in the report, IBM has other products that use in-memory technology like SolidDB and Cognos, but these are not DW repositories. This means for sure that, accordingly to Gartner, Informix is filling an important segment of IBM portfolio for DW DBMS (which as a high rank regarding the "completeness of vision")
  • Gartner seems to imply that the Informix product is not enough to compete with others. This statement puzzles me because of the following comparison points with the competition:
    • Oracle put together a system that they call Exalytics which includes TimesTen (a competitor of IBM's SolidDB), ESSBase (competitor of IBM Cognos) and some more BI suite components in an hardware box, wrapped with the usual Oracle complexity.
      I see no real innovation here, besides the usual mix, load and discount, compared with specialized technology originated in IBM's research Blink project
    • Microsoft included in-memory technology in SQL Server in the form of the so called Column Store indexes (makes the tables read-only and have several other limitations).
      Again, some of the concepts are similar, but IWA is more flexible and simpler to use
    • SAP with HANA is perceived as the big player, but Gartner mentions customer issues with stability and also refers that the majority of the customers have less than 1TB of data (a value perfectly reasonable for IWA)
  • IWA will see big improvements in the upcoming version, both in features and flexibility. It already scales, is simple and you also gain the regular Informix performance, flexibility and reliability
So, let's wait for the next release, and let's also keep an eye on next year's Gartner report... We never know... It may have new references to Informix like other analysts did (Bloor and Ovum)


Versão Portuguesa:

Enquanto aguardamos pelo próximo webcast sobre a nova versão do Informix (The new IBM Informix: It's simply powerful), estão a acontecer novidades interessantes... Há alguns dias atrás, Fred Ho notou que o Gartner 2012 Magic Quadrant for Data Warehouse Database Management Systems foi publicado e que menciona o Informix.
Se não segue este tipo de publicações dos analistas, pode não estar ao corrente do impacto que têm junto dos grandes clientes e as conversas que se geram em torno das mesmas. É imenso.

Para ser honesto, a referência ao Informix não parece uma afirmação positiva. Basicamente é dito que a única oferta da IBM em termos de tecnologia in-memory no portfolio de datawarehouse é o Informix Warehouse Edition, e que a IBM devia aumentar a sua oferta neste tipo de tecnologia para se manter competitiva

Pode estar a interrogar-se porque é que estou tão interessando neste relatório? Bom, trabalhando para a IBM aprecio que nos tenhamos deslocado no eixo de "completeness of vision", aproximando-nos do líder - Teradata - , mas este blog é sobre Informix...

Fred Ho já teceu alguns comentários interessantes sobre a recente evolução do Informix Warehouse Accelerator, mas gostaria de salientar alguns outros:

  • Segundo uma rápida pesquisa, a última vez que o Informix terá sido referido num relatório da Gartner foi em 2001 e não foi para elogiar. Na altura a Gartner escreveu que a estratégia da IBM não estava a sossegar os clientes
  • O Informix warehouse accelerator é realmente a oferta da IBM para DW in-memory. Como é referido no relatório, a IBM  tem outros produtos que usam tecnologia in-memory como o SolidDB ou o Cognos, mas estes não são repositórios de DW. Isto significa naturalmente que, de acordo com a Gartner, o Informix preenche um segmento importante do portfolio da IBM para DW DBMS (que tem uma classificação muito alta relativamente a "completeness of vision")
  • A Gartner parece sugerir que o Informix não será suficiente para fazer face à concorrência. Esta sugestão confunde-me devido aos seguintes pontos comparativos com a concorrência:
    • A Oracle juntou no que chama Exalytics, o TimesTen (concorrente do SolidDB da IBM), ESSBase (concorrente do Cognos da IBM) e mais alguns componentes da suite de BI numa caixa/hardware, embrulhada na habitual complexidade Oracle.
      Não vejo nada realmente inovador, para além do habitual mix, junta e desconta, comparado com tecnologia especializada originada no projecto Blink da IBM research
    • A Microsoft incluiu tecnologia in-memory no SQL Server, sob a forma dos chamados Column Store indexes (colocam as tabelas em modo de leitura apenas, e têm outras limitações). Se alguns dos conceitos são semelhantes, o IWA é mais flexível e simples de usar
    • A SAP com o HANA é aceite como o grande player mas a Gartner refere problemas de clientes relativamente a estabilidade e ainda refere que a maioria dos clientes estão a usar menos de 1TB de dados (um valor muito razoável para o IWA)
  • O IWA verá grandes melhorias na versão que está para sair, tanto em funcionalidade como em flexibilidade. Já é escalável, simples e ainda ganhamos a performance, flexibilidade e resiliência habituais do Informix
Portnato, vamos aguardar pela próxima versão, e vamos também manter um olhar atento ao relatório da Gartner do ano que vem... Nunca se sabe... Pode ter novas referências ao Informix como outros analistas já fizeram (Bloor e Ovum)

Categorias: Blogs em Português

2013 IIUG Informix Conference em San Diego - CA

InformixBR - ter, 05/02/2013 - 15:18

mais um ano se passou, repleto de muito trabalho e resultados positivos para o mercado do IBM Informix.
Este ano teremos mais uma edição do IIUG Conference em San Diego na California, onde contaremos com algumas novidades imperdíveis:
- Serão quase 100 sessões, a maioria sobre a família de produtos IBM Informix;
- Esta conferência será uma das melhores oportunidades para participar de um hands-on, e conhecer em detalhes a próxima versão do banco de dados Informix V12.1, bem como ouvir sobre recursos planejados para a próxima versão do Genero;
- Jerry Keesee, Diretor mundial do IBM Informix, fará a abertura oficial da conferência;
- O novo Gerente Geral de Information Management na IBM, Robert Picciano será o orador principal do evento;
- Como todos os anos, diáriamente teremos os eventos de networking, uma ótima oportunidade de conhecer os Engenheiros do produto pessoalmente, clientes do mundo todo e colegas de profissão!

Participe do evento, conheça mais sobre tudo o que o IBM Informix pode oferecer para o seu negócio!!!
Acesse IIUG2013

InformixBR

Categorias: Blogs em Português

Seus backups do Banco de Dados estão integros?

InformixBR - ter, 05/02/2013 - 13:55



Acaba de ser publicada na revista da IBM DataMag, uma matéria extremamente importante relacionada a validação dos backups realizados no seu IBM Informix.
O artigo trata do utilitário chamado ARCHECKER, presente desde a versão 7.3 no produto Informix
Archecker é uma maneira fácil de garantir que seus backups estão funcionando, validando sua integridade. Ele lhe dá a tranquilidade de saber que seus dados estão protegidos.
Além disso existem outras funcionalidades que podem ser exploradas através do utilitário archecker.
Acesse o metrial na integra aqui. (em inglês) 

InformixBR

Categorias: Blogs em Português

Want to know more about next Informix version? / Quer saber mais sobre a próxima versão do Informix?

Informix-Techonology - seg, 04/02/2013 - 10:34

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:
There's no secret to anyone that IBM is preparing the next Informix version. Selected customers have been trying early versions since around October last year. Jerry Keesee the development manager blogged about it, and Praddep Kutty, technical support manager did the same
 Now that we're getting closer to the release we can unveil some more information regarding the new features. I won't go into much detail, but here's an overview:

  • Improved OLAP capabilities
  • New Flexible Grid possibilities
  • Enhanced OAT
  • Extended SQL compatibility
  • Flexible configuration 
But if you really want to know more about what's around the corner, you should attend an upcoming webcast presented by Jerry Keesee and John Miller on March 26.
Please register at:

http://event.on24.com/r.htm?e=571631&s=1&k=6740A7076E0FE9C59EBFDC80C8487D34&partnerref=IBM01



Versão Portuguesa:
Não é segredo que a IBM está a preparar a próxima versão do Informix. Alguns clientes estão já a testar versões pré-release desde Outubro do ano passado. Jerry Keesee, responsável pelo desenvolvimento escreveu sobre isto no seu blog, e o Praddep Kutty, responsável pelo suporte técnico fez o mesmo
Agora que nos estamos a aproximar da data de disponibilização da nova versão, podemos levantar um pouco o véu sobre as novas funcionalidades. Não irei entrar em grandes detalhes, mas de uma forma geral serão:

  • Capacidades OLAP melhoradas
  • Novas possibilidades do Flexible Grid
  • OAT melhorado
  • Compatilibidade extendida de SQL
  • Configuração fléxivel
Mas se realmente quer saber mais sobre o que está ao virar da esquina, deve assistir ao próximo webcast, apresentado pelo Jerry Keesee e John Miller, no dia 26 de Março.
Por favor registe-se em:

http://event.on24.com/r.htm?e=571631&s=1&k=6740A7076E0FE9C59EBFDC80C8487D34&partnerref=IBM01

Categorias: Blogs em Português

### NEW Informix v12 IBM WEBCAST ###

Information X - ter, 29/01/2013 - 16:23

Pessoal.
A versão 12.10 do Informix (code name Centaurus) será oficialmente lançada no dia 5 de Março de 2013.

Teremos um Webcast com Jerry Keesee, Diretor do Time de Desenvolvimento do produto e John Milller III, Arquiteto Lider do Projeto Centaurus, falando do futuro do Informix,
e principalmente sobre esta nova versão.


Para registrar-se no evento acesse o link abaixo:

The New IBM Informix: It's Simply Powerful
http://event.on24.com/r.htm?e=571631&s=1&k=6740A7076E0FE9C59EBFDC80C8487D34&partnerref=IBM02


Até!
Fernando

Categorias: Blogs em Português