Informix 12.10.xC8 !!
Autor: Ask Pontes | Publicado: 2016-12-08T11:59:00-08:00

O release 12.10.xC8 foi liberado, segue abaixo a lista de funcionalidades:



Migração

Mudanças no servidor que afetam a migraçãoIntrodução de um novo parâmetro do $ONCONFIG (DISK_ENCRYPYION)Introdução de uma nova variável de sessão (USE_SHARDING)Introdução de uma nova variável de ambiente (IFX_LO_READONLY)Este fixpack força mudanças na estrutura interna. Para voltar atrás será necessário efetuar uma reversão (onmode -b)

Administração

Ver e re-executar comandos do DBAccessO
 dbaccess tem agora uma opção (-history) que pode ser usada em modo 
direto (sem menus). Esta opção faz com que os comandos executados sejam 
numerados, para mais fácil re-execução de um comando anterior (run #). A
 lista de comandos já executados e o seu respetivo número pode ser 
obtida com o comando "history"

Compatibilidade JSON

Operações (INSERT/UPDATE/DELETE) em shards de forma consistenteQuando trabalhamos com uma sharded collection,
 e inserimos uma linha que deverá pertencer a outro nó que não aquele a 
que estamos ligados, o registo deveria ser movido para o destino de 
forma assíncrona para o servidor correto. Agora, se assim o desejarmos, 
podemos pedir que a movimentação seja síncrona (two phase commit) e só então nos seja retornado o COMMIT
Pesquisa de texto utilizando expressões regularesFinalmente introduzimos as funcionalidades dadas pelas expressões regulares no motor. Trata-se de um novo datablade que se auto-regista quando usamos as suas funções pela primeira vez (já existia um bladelet
 não oficialmente suportado). Funciona no MongoDB API e em SQL normal, 
com a introdução de uma série de funções como regexp_match(), 
regexp_split() etc.
Melhorias de compatibilidade JSONVárias novidades em clientes MongoDB API:

Podem utilizar cursores nativos, o que permite maior eficiência em queries para efetuar paginação. Anteriormente o cliente teria de enviar uma query para cada página
Os cursores referidos anteriormente têm um timeout para evitar que fiquem abertos mesmo após longos períodos de inatividade dos clientes
Nova opção para fechar conexões inativas no listener de JSON
Um novo parâmetro do listener (listener.http.headers.size.maximum) permite controlar o tamanho máximo dos cabeçalhos dos pedidos HTTP recebidos


Enterprise replication

Operações (INSERT/UPDATE/DELETE) em shards de forma consistente Como a nota anterior para sharded collections, mas para tabelas tradicionais
Listar comandos de Enterprise ReplicationNovo comando "cdr
 list
catalog" permite obter uma lista de comandos CDR necessária para 
duplicar o ambiente corrente (para testes ou cópia para produção)

Desenvolvimento aplicacional

Renomear índices gerados pelo sistemaUm índice gerado automaticamente pelo sistema é um índice criado pelo Informix para suportar uma constraint como chave primária, chave estrangeira, ou unique constraint.Se removermos a constraint o índice é automaticamente eliminado. Estes índices distinguem-se dos normais porque o seu nome começa com um " " (espaço).Agora temos a possibilidade de renomear estes índices o que tem duas vantagens:

Podemos querer standardizar os nomes dos índices
Podemos querer remover a constraint mas manter o índice (o que tornará mais rápida a recriação da constraint se for essa a intenção)

Utilização de espaço temporárioUma
 das minhas favoritas! Era quase impossível obter a identificação das 
sessões que estavam a consumir espaço temporário na instância. 
Recentemente criei um script chamado ixtempuse
 para contornar essa dificuldade). Agora foi adicionada uma nova coluna (SID) à view da sysmaster chamada sysptnhdr. A coluna será preenchida para objetos temporários como hash tables, sorts, materialização de views etc. Portanto a partir deste fixpack será trivial obter a informação de que sessão(ões) está a consumir espaço temporário.
Suspender a validação de check constraintsTals como as chaves estrangeiras, agora as check constraints também aceita a cláusula "no validate". Isto é muito importante nos seguintes cenários:

Quando importamos dados e sabemos que os mesmos estão corretos
O
 Informix verifica que os dados de uma tabela que está a ser adicionada 
como fragmento de uma tabela fragmentada/particionada, validam a 
expressão de fragmentação em uso.Isto pode consumir muito tempo e recursos durante a execução da instrução ALTER FRAGMENT ATTACH, dado que força um full scan na tabela que é consumida. Uma solução para isto era criar uma check constraint
 na tabela que vamos adicionar que correspondesse à expressão de 
fragmentação. O otimizador tem inteligência para detetar a relação e 
evitar a verificação (dado que a constraint já o garante). Isto evita o tempo durante o ATTACH, mas implicava gastar os recursos na validação quando se criava a constraint. Ora agora com o "no validate" podemos criar a constraint
 instantaneamente, e evitar por completo o desperdício de tempo. Claro 
que a responsabilidade de garantir que os dados carregados estão 
corretos fica inteiramente a cargo do utilizador.

Conformidade com JDBC 4.0Finalmente melhoramos a compatibilidade do driver nativo com o standard JDBC. Eu penso que termos drivers nativos e DRDA coloca o Informix numa situação delicada: Por um lado os drivers DRDA estão mais adequados aos vários standards
 e são mais frequentemente atualizados pois podem ser usados em várias 
bases de dados da IBM. Mas por outro lado não suportam algumas 
funcionalidades específicas do Informix e para corrigir isto o standard DRDA teria de ser modificado. Sendo um standard aberto isto não é fácil. Por isso é muito bom ver investimento feito nos drivers nativos.
Acesso a smart large objects em modo de leitura apenasUma aplicação pode optar por abrir smart large objects apenas em modo de leitura o que evita a sobrecarga que a gestão de locks traz.

Segurança

Encriptação de ficheiros de dadosA partir deste fixpack poderemos usar encriptação de dados transparente ao nível dos dbspaces.
 Não irei entrar em detalhes muito técnicos, mas esta encriptação é 
totalmente transparente para as aplicações e utilizadores da base de 
dados. Destina-se a proteger os dados de administradores de sistema e 
possíveis cópias ou roubos de disco ou de problemas de privacidade 
levantados pela descontinuação de uso de discos antigos.A forma como funciona é muito simples. Após configurar um novo parâmetro (DISK_ENCRYPTION) com o nome de uma keystore, qualquer dbspace novo será encriptado. Existe uma opção para os criar sem encriptação.A encriptação de dbspaces já existentes pode ser alcançada através de backup/restore. Desencriptação de dbsapces já encriptados pode ser obtido da mesma forma.Cada dbspace
 terá a sua própria chave de encriptação. O espaço ocupado não crescerá 
por via da encriptação. Encriptação de uma tabela ou conjunto de tabelas
 específico pode ser conseguido pela movimentação das mesmas para um dbspace encriptado

Time series

Analítica avançada sobre dados timeseriesNovas funções para analisar dados timeseries,
 como pesquisa de padrões ou anormalidades, incluindo quantificação de 
similaridade, distância e correlação entre duas sequências
Melhorias em funções de timeseries Várias melhorias no que pode ser usado como expressões para as funções CountIF e Apply 

Embeddability

Distribuição "embebida" mais fácilO ifxdeploy pode ser usado como non-root e o seu ficheiro de configuração foi descontinuado em favor de parâmetros na linha de comandos, que foram expandidos


Conteudo reproduzido a partir do Blog do Fernando Nunes:
http://informix-technology.blogspot.com.br/2016/12/informix-1210xc8-is-out-informix.html