Thursday, June 30, 2011

11.70.xC3 is available / 11.70.xC3 está disponível

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


English version:

My articles backlog keeps increasing, but there are things I can't miss. One of them is the availability of another fixpack of Informix.
The latest one is 11.70.xC3. I spot it on FixCentral a couple of days ago and PDF documentation is already available. InfoCenter is also updated.

As usual there are big news and smaller ones. It really depends on your needs and cares. The follwoing is a straight copy/paste from its release notes:
  • Administration
    • Automatic read-ahead operations
    • Configuring the server response to low memory
    • Reserving memory for critical activities
    • Connection Manager enhancements
    • Enhancements to the OpenAdmin Tool
  • Embeddability
    • Managing message logs in embedded and enterprise environments
  • Developing
    • Built-in SQL compatibility functions for string manipulation and trigonometric support
  • High availability clusters and Enterprise Replication
    • Automatically connecting to a grid
    • Code set conversion for Enterprise Replication
    • Enhancements to the Informix Replication plug-in for OAT
  • Security
    • Non-root installations support shared-memory and stream-pipe connections
    • Retaining numbers for audit log files
    • Restrict operating system properties for mapped users
  • Time Series data
    • Simplified handling of time series data
    • Informix TimeSeries plug-in for OAT
A few remarks:

The possibility of configuring read ahead automatically is great. Let's be honest: How many of us ever really mastered the traditional configuration? Personally I can tell you that a few years ago I tried it in a very controlled environment and I gave up. I could not spot any difference in my tests and over the years I've seen contradictory statements on how it should be setup. So it's a great pleasure to see it can be automatic now.

Server response in a low memory situation is also a great new feature. In cases where I have more than one instance on the same server I insist on setting up SHMTOTAL so that I can isolate any issue caused by excessive memory consumption. This prevents the situation from affecting other instances.
But even so it was usual to see undesirable behaviors on the instance consuming too much memory. And this is easy to understand, because to fix something (rollback, monitor etc.) you still need memory. If you've run out of it, your ability to solve it is constrained.
What IBM did now is give you the ability to reserve some memory, to deal with lack of memory. Seems pretty obvious right? But IBM did more. When you hit the pre-configured thresholds the engine can automatically run some tasks that will allow it to free some memory. So, again, more automation, easier to use in embedded scenarios and more robustness

Connection manager suffered some big changes. Sincerely I need more time to figure them out, but the idea is that a unique connection manager can be used to deal with different needs (high availability, grid, server sets and ER. The configuration file has changed.
As usual, OAT has been changed to accommodate the server side improvements. Several new options are available to deal with log file rotation, low memory conditions setup, lock monitoring (inspired on a plugin initially created by me which is available on the IIUG software repository) and a new plugin to handle TimeSeries.

Several new SQL functions were introduced. This is something that could be solved (most of them could be easily created), but that hurt the new users experience and portability efforts. I would like to see much more in this area...
One interesting new feature is the possibility to configure ER between servers with different codesets. This opens some interesting possibilities for example if you need to convert the codeset of a large database.

Timeseries was also improved, revealing it's one very important aspect of the latests releases.
Finally several security related changes, like improvements for servers in "non-root" installations and for instances configured with mapped users.

I usually concentrate only on the server side improvements, but this time I want to mention a trivial, but long desired change in Client SDK: It now includes dbaccess, the simple but very handy tool. Of course people would like to see a fancy GUI tool on Windows (or even other environments using Java), but that would be much harder, and would certainly increase the footprint.
This is a quick solution for a long lasting problem: the client did not include any query tool. I would vote for the inclusion of other traditional "server side" tools like dbschema and dbload.


Versão Portuguesa

O meu atraso na escrita de artigos continua a aumentar, mas há algumas coisas que não posso deixar passar. Uma delas é a disponibilidade de outro fixpack Informix.
O último é o 11.70.xC3. Encontrei-o há dois dias no site FixCentral e a documentação em PDF já está disponível. O InfoCenter também já está actualizado

Como de costume há grandes novidades e pequenas novidades. Tudo depende das necessidades e preocupações de cada um. O seguinte é a tradução tão fiel quanto possível das novidades especificadas nas notas deste fixpack:

  • Administração
    • Operações automáticas de read-ahead
    • Configuração da reacção do servidor a situações de escassez de memória
    • Reservar memória para actividades criticas
    • Melhorias no Connection Manager
    • Melhorias no OpenAdmin Tool
  • Funcionalidades de inclusão da base de dados em ambientes fechados
    • Gestão de logs de mensagens em ambientes embebidos e empresariais
  • Desenvolvimento
    • Funções SQL de compatibilidade e manipulação de strings e suporte trigonométrico
  • Clusters de alta disponibilidade e Enterprise Replication
    • Conexão automática a uma grid
    • Conversão de mapas de caracteres para Enterprise Replication
    • Melhorias no plugin de replicação Informix para o OAT
  • Segurança
    • Instalações Non-root suportam conexões shared-memory e stream-pipe
    • Retenção de números para os logs de audit
    • Restrição de propriedades de sistema operativo para utilzadores mapeados
  • Dados Time Series
    • Gestão simplificada de dados Time Series
    • Plugin do OAT para Informix TimeSeries


Alguns comentários:

A possibilidade de configurar o read ahead automaticamente parece-me óptima! Sejamos honestos: Quantos de nós conseguiram realmente dominar a configuração tradicional? Pessoalmente posso dizer que há alguns anos atrás tentei num ambiente bastante controlado e desisti. Não consegui identificar diferenças sensíveis nos meus testes, e ao longo dos anos vi indicações contraditórias sobre como isto deveria ser configurado. Por isso é com muita satisfação que vejo que agora pode ser automatizado.

Poder configurar a reacção do servidor em situações de escassez de memória é outra excelente melhoria. Em ambientes onde tenha mais que uma instância por servidor, eu insisto em definir o SHMTOTAL, para que possa isolar qualquer problema causado por excesso de consumo de memória. Isto previne que a situação afecte as outras instâncias (ou no limite a própria máquina). Mas mesmo assim era habitual vermos comportamentos não desejados numa instância que consumisse muita memória. E isto é fácil de entender, porque para corrigir alguma coisa (efectuar um rollback, monitorizar etc.) é necessária memória. Se já a esgotámos, a capacidade de resolver o problema é afectada.
O que a IBM fez agora foi dar-nos a capacidade de reservar alguma memória para lidar com a falta de memória. Parece bastante óbvio, certo? Mas a IBM fez mais. Quando atingimos os limites pré-configurados, o motor pode automaticamente executar algumas tarefas que lhe permitirão libertar memória. Portanto, mais uma vez, mais automatização o que torna mais fácil usar o Informix em ambientes embebidos e aumenta a robustez.

O Connection Manager sofreu grandes alterações. Sinceramente necessito de mais tempo para as analisar, mas a ideia é que um único connection manager pode ser usado para lidar com diferentes necessidades (alta disponibilidade, grid, server sets, e Enterprise Replication). O formato do ficheiro de configuração foi alterado.

Como vem sendo habitual, o Open Admin Tool (OAT) foi alterado para acomodar as melhorias introduzidas no servidor. Novas opções estão disponíveis para lidar com rotação de ficheiros de log, configuração de condições de escassez de memória, monitorização de locks (inspirado num plugin inicialmente criado por mim e disponível no repositório do IIUG) e um novo plugin para lidar com TimeSeries.

Várias novas funções SQL foram introduzidas. Isto é algo que poderia ser resolvido pelo utilizador (a maioria destas podia ser facilmente criada), mas isso dificultava a vida a novos utilizadores e tinha impacto na portabilidade de aplicações. Gostaria de ver muito mais evolução neste aspecto...

Uma funcionalidade interessante é a possibilidade de configurar Enterprise Replication (ER) entre bases de dados que utilizem diferentes mapas de caracteres.
Isto abre possibilidades interessanes se por exemplo necessitar-mos de converter um mapa de caracteres de uma base de dados grande.

O TimeSeries também foi melhorado, revelando que é um dos aspectos mais importantes das últimas versões.
Finalmente, algumas mudanças na área de segurança, como melhorias em servidores instalados como "non-root" e para instâncias configuradas com utilizadores mapeados.

Habitualmente concentro-me apenas nas melhorias do lado do servidor, mas desta vez tenho de mencionar um mudança trivial, mas há muito desejada no Client SDK: Passou a incluir o dbaccess, a ferramenta simples, mas muito útil de interrogação da base de dados. Claro que todos gostaríamos de ver uma ferramenta gráfica nos ambientes Windows (ou mesmo em todos os ambientes, baseado em Java por exemplo), mas a verdade é que isso necessitaria de um esforço muito maior e iria aumentar significativamente a dimensão do cliente.
Isto é uma solução rápida para um problema que existia há muito tempo: o cliente não incluía nenhuma ferramenta de interrogação da base de dados. Eu votaria a favor da inclusão de outras ferramentas "tradicionais" do servidor como o dbschema e dbload.