Monday, April 4, 2011

New products / Novos produtos

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

English version:

Informix Warehouse Accelerator

There are several news in the Informix area. As I mentioned in the last article, version 11.7.xC2 is already available (including the update on the documentation center), but that's not all. One of the major features of 11.7.xC2 is that it supports a new product called Informix Warehouse Accelerator. This is a separate installable component, that uses a columnar based approach and holds copy of certain groups of tables (datamarts). The data is stored in memory and the queries that can be solved by this system are transparently sent from the main instance. If the data you're querying is not stored/duplicated in the system than the query is solved by the Informix instance. The principle is terribly simple and the installation and configuration is very straight forward. The Accelerator is only available for Linux x86_64 but can work together with Informix on other platforms. The product includes an eclipse based tool to manage the data mapping and configuration of your Informix instance. The product is oriented for data warehouse workloads and was already available for DB2 on z/OS.
The Informix Ultimate Warehouse Edition includes the usual Informix features, the Warehouse Accelerator, compression, LBAC, replications etc.
I've done a few preliminary tests and I can assure you the configuration is very easy. Expect some details in a future article. Meanwhile you can start discovering it at the following URL:

http://www-01.ibm.com/software/data/informix/ultimate-warehouse-edition/

Informix Genero

Informix Genero is another new product targeting the 4GL users. You may recognize the name as a 4JS product. It enables the modernization of 4GL applications (new interface, new functionalities, new deployment environments).

I've seen lots of customers with very customized, flexible and stable applications running with Informix 4GL that complain about the looks (character based) and some lack of functionalities. Nevertheless they don't want to leave 4GL for several reasons:
  • 4GL productivity
  • Programmers mindset (4GL is a procedural language, and moving to object oriented is not always easy)
  • Ease of debug
  • Stability
  • etc.
If you're one of this customers you may want to take a close look at this new IBM offer. Please start here:

http://www-01.ibm.com/software/data/informix/tools/genero.html


Partners conference calls:

If you have interest in these two topics, you can try to check these two partner conference calls:


Versão Portuguesa:



Informix Warehouse Accelerator
Há várias noticias na área de Informix. Como mencionei no último artigo, a versão 11.7.xC2 já está disponível (incluindo a actualização no centro de documentação), mas não é tudo. Uma das funcionalidades da 11.7.xC2 é suportar um novo produto chamado Informix Warehouse Accelerator. Este é um componente instalado separadamente, que usa uma abordagem orientada a colunas e que guarda uma cópia de vários groupos de tabelas (datamarts). Estes dados são guardados em memória e a queries que possam resolver-se no novo sistema serão enviadas transparentementde pelo sistema principal. Se os dados não que estamos a interrogar não existirem neste sistema, então a query é resolvida pelo sistema principal. O princípi é terrivelmente simples bem como a configuração e instalação. O Accelerator só existe para Linux x86_64 (mas pode estar ligado a uma instância Informix noutra plataforma). O produto incluí uma ferramenta baseada no Eclipse que permite a gestão dos mapeamentos de dados e a configuração da instância Informix. O produto é orientado a ambientes de data warehouse e já estava disponível para DB2 em z/OS.
O Informix Ultimate Warehouse Edition incluí as funcionalidades habituais do motor, o Warehouse Accelerator, compressão LBAC, replicação etc.
Já tive oportunidade de fazer alguns testes preliminares e posso assegurar que a configuração é de facto muito fácil. Aguarde mais detalhes num futuro artigo. Entretanto pode começar a descobrir o assunto no seguinte URL:

http://www-01.ibm.com/software/data/informix/ultimate-warehouse-edition/

Informix Genero

O Informix Genero é outro produto cujo alvo são os utilizadores de 4GL. Talvez reconheça o nome como um produto da 4JS. Permite a modernização de aplicações 4GL (novo interface, novas funcionalidades, novos ambinetes de utilização).

Tenho visto muitos clientes com aplicações muito adaptadas, fléxivies e estáveis que sistematicamente se quixam do aspecto (baseado em caracter) e alguma falta de funcionalidades.
No entanto não querem deixar o 4GL por várias razoes.:
  • Produtividade do 4GL
  • Orientação dos programadores(4GL é uma linguagem procedimental e a mudança para programação orientada a objectos nem sempre é fácil)
  • Facilidade de despiste de problemas
  • Estabilidade
  • etc.
Se é um destes clientes, talvez queira dar uma olhadela nestas novas ofertas da IBM: Comec aqui:

http://www-01.ibm.com/software/data/informix/tools/genero.html


Conferências para parceiras;

Se tem interesse em algum destes tópicos pode tentar assistir a estas duas reuniões

Informix Ultimate Warehouse Editions:

Sunday, December 12, 2010

Panther: Name service cache

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

English version:

A recent thread in the IIUG mailing list (relative to a reverse DNS issue) reminded me of a new Panther (version 11.7) functionality that was on my list for articles. I've been avoiding many of the bigger and more important features because they will take a lot of time to write about... I hope this one will be shorter.

Informix needs to read several files or interact with DNS servers each time you try to open a connection. Considering Unix and Linux (Windows is a bit different technically, but not that much conceptually), these are some of the actions the engine must do:
  1. Depending on your host resolution criteria it will probably open the /etc/hosts file to search for your client's IP address. If it's not there it will contact your DNS server in order to request the name associated with the IP address.
    Note that all this is done by a system call.
  2. It will access /etc/passwd (or equivalent) to get your user details (HOME dir, password - this is probably stored in another file like /etc/shadow - , user id, group id etc.)
The engine must also access /etc/services and /etc/group in other situations.
Depending on your environment these activities can take a bit of time, and require some significant CPU usage. There are systems with high number of connections per second which can naturally transform this into a significant issue.
To give you an example I do regular work on a system that used to receive a very large number of requests from CGI programs. So, each request received by HTTP required a new process on the application server, and a new connection on the database server. They had peaks of tens of requests per second. Currently they're using Fast CGI with noticeable improvements.
Anyway, IBM decided to give us the chance to optimize this by caching previous results (file searches and DNS requests). This is done with the new parameter called NS_CACHE (from Name Service Cache). The format of this $ONCONFIG parameter is:

host=num_secs,services=num_secs,user=num_secs,group=num_secs

Each comma separated pair (functionality=num_secs) configures the number of seconds that the engine will cache a query result for that functionality. I'm calling it functionality, because it can be implemented through files or system APIs. The documentation could be clearer, but let's check each one:
  • host
    This is the host and IP address resolution service. Depending on your system configuration (on most Unixes and Linux this is specified in /etc/nsswitch.conf) it can be resolved by reading the /etc/hosts file and/or making a request to your DNS servers
  • service
    This should be the map between service names and system ports, usually done by reading /etc/services. The only situation that comes to my mind where this is used is when you're trying to start a listener (either during engine startup or after that with onmode -P) or when you're trying to make a distributed query to another engine, and you use names in your INFORMIXSQLHOSTS instead of port numbers. In any case, I may be missing something...
  • user
    This is very important. It refers to all the user related info that Informix gathers from the OS and that is relevant to Informix. The information can be stored in /etc/passwd, /etc/shadow, or indirectly be managed by external services like LDAP. It can include:
    - Home dir
    - User ID
    - Group ID
    - Password
    - User status (enable or disable
  • group
    This relates to the OS group information. Usually done by reading /etc/group
If the specified number of seconds to cache the information is zero, it means that we don't want to cache it. So the behavior will be the old engine behavior (for each relevant request, the information must be obtained).
The parameter can be changed online with onmode -wm

It's important that you fully understand the implications of caching these kind of information. By asking Informix to cache this info, we're also assuming the risk of working with stale information. Let's imagine a simple scenario. Assume this sequence of events:
  1. At time T0 you connect using user and password to the engine which is setup to cache user information for 600s (10 minutes).
  2. At time T1 you change that user password
  3. At time T2, the same user tries to connect to the Informix database with the new password. It will fail!
  4. At time T3 (T0 + the number of seconds to cache user information) the user repeats the connection attempt with the new password. It will succeed!
How can you avoid situation 3? If you change the cache timeout to 0, it will work as a flush.
If for example you do some changes to your user's information you can run:


onmode -wm NS_CACHE="host=900,service=900,user=0,group=900"
onmode -wm NS_CACHE="host=900,service=900,user=900,group=900"


These commands will flush the user information cache, and then reactivate it.

So, the point I'd like to make is that this feature can help you improve performance (specially for systems with an high connection rate), but it can have some side effects. You can workaround these ones, but for that you must know they exist.


Versão Portuguesa:

Uma discussão recente na lista de correio do IIUG (relativa a um problema com reverse DNS) lembrou-me de uma funcionalidade nova do Panther (versão 11.7) que estava na minha lista de temas a abordar. Tenho andando a evitar muitas das maiores e mais importantes novidades porque vou demorar bastante tempo a escrever sobre elas.... Espero que esta seja mais reduzida.

O Informix tem de ler diversos ficheiros ou interagir com servidores de nomes (DNS) cada vez que abre uma conexão. Considerando o Unix e Linux (em Windows será um pouco diferente tecnicamente, mas não muito conceptualmente), estas são as acções que o motor tem de fazer durante o estabelecimento de uma conexão:

  1. Dependendo do critério usado para resolver endereços e nomes, provavelmente irá abrir o ficheiro /etc/hosts para procurar o IP da conexão. Se não o encontrar irá provavelmente contactar o servidor de nomes (DNS) e pedir o nome associado ao IP de onde chega a conexão.
    Note-se que isto é feito com uma chamada de sistema e não cabe ao Informix definir os critérios.
  2. Irá aceder ao /etc/passwd (ou equivalente) para obter os dados do utilizador (HOME dir, password - isto deve estar guardado noutro ficheiros como o /etc/shadow- , id de utilizador, id de grupo etc.)
O motor também tem de aceder ao /etc/services e /etc/group noutras situações.
Dependendo do seu ambiente estas operações podem demorar um pouco e requerer um consumo de CPU relevante. Existem sistemas com muitas conexões novas por segundo o que naturalmente pode transformar isto num problema sério.
Para dar um exemplo, trabalho regularmente com um sistema que em dada altura recebia um enorme número de pedidos por CGI. Sendo CGI, cada pedido recebido via HTTP requeria um novo processo na máquina do servidor aplicacional, e uma nova conexão na base de dados. Tinham picos de dezenas de ligações por segundo. Actualmente estão a usar Fast CGIs com benefício notórios.
De qualquer forma a IBM decidiu dar aos utilizadores a oportunidade de optimizarem estes aspectos, através de uma cache que guarda respostas anteriores (pesquisas em ficheiros e resultados de DNS). Isto é feito com um novo parâmetro designado NS_CACHE (de Name Service Cache). O formato do parâmtro do $ONCONFIG é:

host=num_segs,services=num_segs,user=num_segs,group=num_segs

Cada par (funcionalidade=num_segs) separado por vírgula, configura o número de segundos durante os quais o motor irá manter em cache o resultado de uma pesquisa para essa funcionalidade. Estou a chamar-lhe "funcionalidade", porque pode ser implementada usando ficheiros ou APIs de sistema. A documentação deveria ser mais clara, mas vamos ver cada uma:
  • host
    O serviço de resolução de nomes e endereços IP. Conforme a configuração do seu sistema (na maioria dos Unixes e Linux isto é definido em /etc/nsswitch.conf) pode ser resolvido pelo ficheiro /etc/hosts ou fazendo um pedido aos servidores de DNS
  • service
    Este é o mapeamento entre o nome de serviços e as portas de sistema, habitualmente feito através da leitura do ficheiro /etc/services. As únicas situações que me ocorrem em que isto é usado é quando arrancamos com um listener (seja no arranque do motor ou depois quando se usa o onmode -P), ou quando tentamos executar uma query distríbuida a outro motor, e usamos nomes no nosso INFORMIXSQLHOSTS em vez de números de portos. Mas pode estar a escapar-me alguma coisa, e haver outras...
  • user
    Este é muito importante. Refere-se a toda a informação relativa aos utilizadores que o Informix obtém do sistema operativo e que é relevante para o Informix. A informação é guardada no /etc/passwd e /etc/shadow, ou gerida indirectamente em serviços externos como LDAP. Pode incluir:
    - Home dir
    - ID de utilizador
    - ID de grupo
    - Palavra passe
    - Estado do utilizador (activo, inactivo)
  • group
    Isto diz respeito à informação de grupos do sistema operativo. Normalmente feito por consulta ao ficheiro /etc/group

Se o número de segundos especificado para a cache for zero, significa que não queremos fazer caching. Portanto o comportamento será o antigo do motor (para cada pedido a informação tem de ser obtida).

O parâmetro pode ser modificado online com o comando onmode -wm

É importante que entenda completamente todas as implicações de fazer caching deste tipo de informação. Ao pedir ao Informix que guarde e reutilize a informação já obtida, estamos também a assumir o risco de trabalhar com informação entretanto desactualizada. Vamos imaginar um cenário simples. Consideremos a seguinte sequência de eventos:

  1. No momento T0 conectamo-nos usando um utilizador e palavra chave a um motor configurado para efectuar caching por 600 segundos (10 minutos).
  2. No momento T1 mudamos a palavra chave desse mesmo utilizador.
  3. No momento T2 o mesmo utilizador tenta conectar-se ao Informix usando a nova palavra chave. Vai falhar!
  4. No momento T3 (T0+ o número de segundos configurado para a cache de utilizador) o utilizador repete a tentativa de acesso com a nova palavra chave. Vai ter sucesso!
Como pode evitar a situação do ponto 3? Se mudar o tempo de cache para 0, funciona como uma limpeza da cache.
Se por exemplo efectuar mudanças na informação dos utilizadores, pode executar:


onmode -wm NS_CACHE="host=900,service=900,user=0,group=900"
onmode -wm NS_CACHE="host=900,service=900,user=900,group=900"


Estes comandos fazem a limpeza da informação e depois re-activam a cache.

Portanto, o ponto que gostaria de frisar é que esta funcionalidade pode melhorar o desempenho (especialmente em sistemas com elevada frequência de novas conexões), mas também pode ter efeitos secundários. Estes podem ser contornados, mas para isso temos de saber que existem.

Wednesday, November 10, 2010

Quiz game / Adivinha

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

English version:

If you have 15m I'd like to propose you a quiz game. Go to this webpage:

http://www-01.ibm.com/software/data/informix/library.html

scroll down to the white papers section and open the one titled "Smart Systems Require an Embedded Database: Six Criteria to Consider"
It's a joint IBM and Cisco whitepaper that talks about the characteristics a database should have to be used as an embeddable database. The characteristics are analyzed through six criteria: installation, integration, performance, resource management, administration and availability.
If you know what have been introduced in Informix in the latest releases you'll find this quite amusing. So what's the quiz? Try to find out what database the paper is talking about. I don't need to tell you the answer, mainly because you'll surely find out by yourself, but also because the answer is discreetly given at the end of the paper...
It's public that some Cisco equipments include Informix (Cisco support forums support this claim). I personally believe this is enough proof that Informix is an excellent product if you need to embed a database in your solution (whether it is software only or software and hardware). If you take some time to check the latest versions new features you'll find lots of improvements for this type of use.



Versão Portuguesa:

Se tiver 15m livres gostava de lhe propor um jogo de adivinha. Vá até esta página:

http://www-01.ibm.com/software/data/informix/library.html

desça até à secção dos white papers e abra o intitulado "Smart Systems Require an Embedded Database: Six Criteria to Consider" (apenas em Inglês)
É um documento conjunto entre a IBM e a Cisco que fala sobre as características que uma base de dados deve ter para ser usada como uma base de dados embebida. As características são analisadas segundo seis critérios: instalação, integração, desempenho, gestão de recursos, administração e disponibilidade.
Se sabe o que tem sido introduzido no Informix nas últimas versões, vai achar este documento divertido. Portanto qual é a adivinha? Tente descobrir qual é a base de dados falada no documento. Não necessito de lhe dar a resposta aqui, principalmente porque conseguirá perceber a resposta sozinho, mas também porque a resposta é dada de forma muito discreta no final do documento...
É público que alguns equipamentos Cisco incluem Informix (os fóruns de suporte da Cisco sustentam esta afirmação). Pessoalmente acredito que isto é prova suficiente de que o Informix é um excelente produto se necessita de embeber uma base de dados na sua solução (seja apenas de software ou software e hardware).
Se tirar algum tempo para verificar as novas funcionalidades das últimas versões encontrará imensas melhorias para este tipo de utilização.

Tuesday, November 2, 2010

IIUG 2011 Conference / Conferência IIUG 2011

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

English Version:

IIUG has just opened the 2011 IIUG conference registration. The conference will be held in May 15-18 2011, at the usual place, the Marriot Overland Park hotel in Overland Park, Kansas City. The conference can cost as little as:
  • $525 for the conference registration (if you register before January 31 and you're an IIUG member)
  • $129 / night (Sunday and week days) plus $99 / night (Friday and Saturday)
  • Travel costs
Regular sessions will be held from Monday to Wednesday and there are special Sunday sessions (tutorials). From Sunday evening to Tuesday, you'll have breakfast, lunch and evening receptions to keep you well fed. So a typical stay (arriving and Sunday afternoon and leaving on Thursday will cost you around $525 + (4 * $129) + travel costs + Wednesday dinner which translates into around $1050 plus travel costs.

That's what you'll pay. What about what you'll get? Well, I can speak for the 2010 conference. It was by far one of the best training events I've ever been. If you work with Informix, or plan to work with Informix you have several options for training: IBM classes, Instructor Led Online (remote online training), custom classes in your company installations and IIUG conference. And one thing I can assure you: You won't get the networking, knowledge transfer and the possibility to interact with the IBM Informix technical staff anywhere else. Typically my biggest problem was to decide which session to attend. And next year, with the recent launch of Panther (v11.7) the sessions should be even more interesting. You also get the chance to take free certification tests (around $150). Besides all this the conference atmosphere is rather amusing and you'll get a lot of fun. Maybe you should omit this from your management or they may prefer to take your place! :)

So if you have a training budget you should consider this. It's also a rare opportunity to speak to the people who drive Informix's future. If you need a new feature, or if you find a limitation in the product there is no better place to explain it than at the conference.

In short, you'll get:
  • More interesting sessions than you'll be able to attend (it's a good idea to take a colleague and each one attend a different session at a time)
  • Free certification tests
  • Opportunity to talk with all the Informix gurus out there
  • Opportunity to interact with the Informix top architects
  • Networking with other users. You can do and promote your business there
  • Relaxed, friendly and fun atmosphere promoted by all the IIUG people
  • Opportunity to understand why the conference takes place in Kansas City (no distractions besides the green fields and having the Informix lab right next door)
All this for maybe less than the cost of a traditional 3 day course

Finally, IIUG is still accepting speakers nominations (until November 15). If you have something to present, be it a deep dive into some particular aspect of Informix, a good use case, a success story etc. please don't hesitate. Speakers will not pay for the conference (less $525 on the budget). Don't hold back if you have something interesting to show. The audience will be friendly and your presentation skills will be less important than your subject.


Versão Portuguesa:

O IIUG anunciou a abertura do registo para a sua conferência internacional de utilizadores de 2011. A conferência terá lugar de 15 a 18 de Maio de 2011, no local habitual, o hotel Marriot Overland Park, em Overland Park, Kansas City, EUA. O custo poderá ser tão pouco quanto:

  • $525 para o registo na conferência (se se inscrever antes de 31 de Janeiro e for membro do IIUG)
  • $129 / noite (Domingo a quarta-feira) mais $99 / noite (Sexta-feira e Sábado)
  • Custos de viagem

As sessões normais decorrem de Segunda a Quarta-feira e existem sessões especiais no Domingo (tutorials). Do final de Domingo até Quarta-feira terá pequeno almoço, almoço e recepção nocturna para o manter bem alimentado. Assim, uma ida típica (chegada no Domingo ao final da tarde e saída na Quinta-feira) custar-lhe-á cerca de $525 + ( 4 * $129) + custos de viagem + jantar de Quarta-feira, o que se traduzirá em cerca de $1050 mais viagens.

Isto é o que custa. E quanto ao que se recebe? Bom, eu posso falar pela conferência deste ano (2010). Foi de longe um dos melhores eventos de formação em que estive. Se trabalha com Informix, ou se planeia trabalhar com Informix tem várias opções de formação: Cursos da IBM, Instructor Led Online (formação online remota), cursos customizados nas instalações da sua empresa e a conferência do IIUG. E algo posso garantir: Não vai obter a possibilidade de interacção, a transferência de conhecimentos e a possibilidade de interagir com o staff técnico da IBM Informix em mais lado nenhum. Regra geral a minha dificuldade foi escolher a sessão a que iria assistir no horário seguinte. E no ano que vem, com o recente lançamento da versão 11.7 (Panther) as sessões devem ser ainda mais interessantes. Também tem a possibilidade de fazer testes gratuitos de certificação (rondam os $150).
Para além disto, a atmosfera da conferência é bastante engraçada e divertida. Mas talvez seja melhor omitir isto à sua gestão, ou podem preferir tomar o seu lugar! :)

Portanto, se tem um orçamento de formação deve considerar isto. É também uma rara oportunidade de falar com as pessoas que decidem o futuro do Informix. Se precisa de uma nova funcionalidade ou se encontrou uma limitação no produto não há melhor sitio que a conferência para o explicar.

Em resumo obterá:

  • Mais sessões de interesse que aquelas a que conseguirá assistir (é uma boa ideia levar um colega e dividirem-se pelas sessões concorrentes no horário)
  • Testes de certificação gratuitos
  • Oportunidade de falar com todos os gurus de Informix
  • Oportunidade de interagir com os arquitectos de topo do Informix
  • Interacção com outros utilizadores. Pode efectuar e promover negócios lá
  • Atmosfera descontraída e divertida, promovida por todos os elementos do IIUG
  • Oportunidade de perceber porque é que a conferência se realiza em Kansas City (poucas distracções para além dos campos verdes, e ter o laboratório de Informix mesmo ao virar da esquina)
Tudo isto possivelmente por menos custo que um curso tradicional de 3 dias.

Por último, o IIUG ainda está a aceitar nomeações para apresentações (até 15 de Novembro de 2010). Se tem algo para apresentar, seja uma visão aprofundada de algum aspecto do Informix, um bom caso de utilizaçao, uma história de sucesso etc. por favor não hesite.
Os apresentadores não pagarão a conferência (menos $525 no orçamento). Não se retraia caso tenha algo interessante para apresentar. A audiência será amigável e as suas qualidades de apresentação serão menos importantes que o tema em si.

Sunday, October 31, 2010

Panther: EXISTS or NOT EXISTS

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

English version:

I'll continue with the quick and easy posts about Panther (v11.70). This time I'll focus on some new SQL that was added in Panther. Most (if not all) CREATE and DROP statements now allow for IF NOT EXISTS and IF EXISTS clauses respectively. These clauses allow us to write CREATE/DROP statements that will not raise errors in case the objects already exist and we're trying to create them, or when they don't exist and we're trying to drop them.
As an example:


panther@pacman.onlinedomus.net:fnunes-> onstat -

IBM Informix Dynamic Server Version 11.70.UC1 -- On-Line -- Up 00:03:17 -- 369588 Kbytes

panther@pacman.onlinedomus.net:fnunes-> dbaccess stores -

Database selected.

> DROP TABLE test;

206: The specified table (test) is not in the database.

111: ISAM error: no record found.
Error in line 1
Near character position 15
> DROP TABLE IF EXISTS test;
>

These two clauses can be used for TABLE, PROCEDURE, FUNCTION, DATABASE, INDEX, ROLE etc. (both for create and drop).
This can be used in scripts to prevent that they abort prematurely. Also interesting is the fact that this syntax can be found on mySQL. So it's easier now to port existing code into Informix.



Versão Portuguesa:

Vou continuar com os artigos rápidos e fáceis sobre a versão 11.70 (Panther). Desta vez vou abordar uma mudança no SQL que foi adicionada ao Panther. A maior parte (se não todas) as instruções CREATE e DROP suportam agora as cláusulas IF NOT EXISTS e IF EXISTS respectivamente. Estas cláusulas permitem-nos escrever instruções CREATE/DROP que não geram erros caso os objectos já existam e os estejamos a tentar criar, ou quando não existem e os estamos a tentar eliminar.
Como exemplo:


panther@pacman.onlinedomus.net:fnunes-> onstat -

IBM Informix Dynamic Server Version 11.70.UC1 -- On-Line -- Up 00:03:17 -- 369588 Kbytes

panther@pacman.onlinedomus.net:fnunes-> dbaccess stores -

Database selected.

> DROP TABLE test;

206: The specified table (test) is not in the database.

111: ISAM error: no record found.
Error in line 1
Near character position 15
> DROP TABLE IF EXISTS test;
>

Estas duas cláusulas podem ser usadas para TABLE, PROCEDURE, FUNCTION, DATABASE, INDEX, ROLE etc. (tanto para o CREATE como para o DROP).
Isto pode ser usado em scripts para evitar que abortem prematuramente. Também é interessante o facto de que esta sintaxe pode ser encontrada no mySQL. Portanto será agora mais fácil portar código existente para Informix

Friday, October 29, 2010

New blog from Paraguay

This article will only be written in English
Este artigo só tem versão Inglesa. Para ver esta notícia em Português consulte o site do Cesar Martins

There is a new south American blog, written in castilian. It's located here:

http://informixpy.blogspot.com/

The author is Javier Gray.
Apparently Javier wants to translate some articles from other blogs (he already did it once from Cesar's blog) besides writing his own articles. Javier also requested my permission to do the same from my blog. So, permission is granted as long as a reference to the original author is kept (as he did with Cesar's article). Hopefully, some of this blog's articles will be available in English, Portuguese and Castilian! That's great! Anybody wants to pick up for French and Chinese (and others?)

Thursday, October 21, 2010

Informix today: an executive statement / Informix hoje: Declaração de um executivo

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

English version:
I'm doing a pause in the Panther related articles to make echo of something equally important. The ones more involved in the Informix community surely recognize the name of Robert D. Thomas. He's an IBM executive, more precisely a vice president for Information Management and he has been addressing some communications to the Informix community.
He did it in March and he's doing it again
I won't repeat here what he writes in his latest letter, but I'd like to mention something about him. As you can see in both these letters and also on his session in IIUG conference in 2010, he always and I mean always starts his messages with a story. It may look strange but we must admit that it really works. It's like a signature. In this case, with a very short paragraph he condenses all the rest of his ideas. And it does sound good. I don't know if he digs these stories, or if he has someone to do it for him, or if he has a pocket reference of inspiring stories :).... How he does it, I don't know, but that he does it perfectly he does it.
The topic of this letter is the status of Informix, and how IBM has delivered (or not) on what Rob laid down in March.
Interesting read. You'll love the story.
I'll refrain myself of commenting on his statements, since any agreement would look suspicious and any disagreement could get me fired :)


Versão Portuguesa:

Estou a fazer uma pausa na série de artigos sobre o Panther, para fazer eco de algo igualmente importante. Quem esteja mais envolvido na comunidade Informix certamente reconhece o nome de Robert D. Thomas. É um executivo da IBM, mais precisamente o vice presidente para Information Management e tem endereçado algumas comunicações à comunidade.
Fê-lo em Março e está a fazê-lo agora
Não vou repetir o que escreve nesta sua última carta, mas gostava de mencionar algo sobre ele. Como pode confirmar por ambas as cartas e também na sua sessão na conferência anual do IIUG em 2010, ele começa sempre e repito sempre as suas mensagens com uma estória. Pode parecer estranho mas tenho de admitir que realmente funciona. É como uma assinatura. Neste caso, com um curto parágrafo condensa todas as ideias restantes. E soa bem. Não sei se ele pesquisa estas estórias, ou se tem alguém que o faça por ele, ou se tem uma referência de bolso com estórias inspiradoras :)... Não sei como o faz, mas garantidamente sai-lhe bem.
O tema desta carta é o estado do Informix, e como a IBM tem cumprido (ou não) com o que o Rob expôs em Março como sendo o caminho a seguir.
É uma leitura interessante. Vai adorar a estória.
Abstenho-me de comentar as suas afirmações pois qualquer concordância seria suspeita e qualquer discordância poderia fazer com que fosse despedido :)