No blog MapCenter esta disponível um projeto do ArcGIS que é uma paleta
de cores. É só imprimir o projeto e depois observar as diferenças entre
as cores no monitor e na impressão. Isto ajuda a escolher cores na tela
para dar as cores impressas desejadas. Abaixo do retângulo que contem
cada cor estão os valores CMYK da côr. O link é do blog éhttp://blogs.esri.com/roller/page/mappingcenter?entry=heads_up_color_proofing_for1
O link do arquivo mxd é :http://downloads2.esri.com/MappingCenter2007/blog/ColorPalette_ArcGISMXD.zip
Este blog é como um sótão....um local para guardar... Links Textos etc... Tudo o que um dia poderá fazer falta.
terça-feira, novembro 29, 2011
Preenchendo um campo com uma sequência númerica
Para criar um campo com uma sequência numérica (1,2,3...) no ArcGis faça o seguinte :
A - Crie um campo do tipo númerico
B - Cique com o botão direito na tabela sobre o campo que deseja preencher
C - Entre na opção Field Calculator
D - Vai aparecer uma tela conforme mostrado abaixo
E - Clique no campo advanced (seta 1)
F - Copie o texto abaixo no local indicado pela seta 2
Static rec As Long
Dim pStart As Long
Dim pInterval As Long
pStart = 1
pInterval = 1
If (rec = 0) Then
rec = pStart
Else
rec = rec + pInterval
End If
No local indicado pela Seta 3 coloque a palavra rec
Para prencher um campo com intervalos diferentes de 1, mude a linha
do programa pInterval = 1 para o valor desejado. Para começar a
sequência com um valor diferente de 1 mude a linha pStart = 1 para o
valor desejado. Exemplo : para começar um sequência a partir do valor
100 incrementando de 5 em cinco ficaria :
pInterval = 5
pStart = 100
Field Calculator
Arcgis
Como arredondar um valor decimal a duas casas decimais usando o Field Calculator
Round(NOMEDOCAMPO,Númerodecasasdecimais)
Round(AREA,2)
Como arredondar um valor decimal a duas casas decimais usando o Field Calculator
Round(NOMEDOCAMPO,Númerodecasasdecimais)
Round(AREA,2)
segunda-feira, novembro 28, 2011
quarta-feira, novembro 23, 2011
Google Health e e PowerMeter serão descontinuados
O Google anunciou, em seu blog oficial, que irá descontinuar os produtos Google Health e Google PowerMeter.
Google Health

Google Discovery que a empresa de Mountain View estava prestes a
lançar um serviço relacionado à saúde, o que se confirmou logo depois
com o surgimento das primeiras imagens do Google Health e da sua estreia oficial
em 2008. O Google Health permitia aos usuários criarem perfis e
históricos médicos, incluindo doenças, medicamentos e alergias, que
podiam ser compartilhados com familiares e profissionais de saúde.
O serviço estará disponível normalmente até o dia 1º de janeiro de 2012. Após esta data, não será mais possível visualizar, incluir ou alterar seus dados armazenados no Google Health. Os usuários poderão, porém, fazer o download das informações em formatos variados até o dia 1º de janeiro de 2013.
Google PowerMeter

O Google PowerMeter foi lançado como um protótipo em 2009. Ele ajudava na análise de consumo de energia e trazia informações sobre como aproveitar melhor este gasto.
Google Health
O serviço estará disponível normalmente até o dia 1º de janeiro de 2012. Após esta data, não será mais possível visualizar, incluir ou alterar seus dados armazenados no Google Health. Os usuários poderão, porém, fazer o download das informações em formatos variados até o dia 1º de janeiro de 2013.
Google PowerMeter
terça-feira, novembro 22, 2011
Fixing Broken Data Links in ArcGIS 9
Don’t you hate it when you open an existing MXD file in ArcMAP and those
red exclamation marks next to your data layers indicate you have broken
data links.
Of course you can always update the data source links individually: Right click on the layer> Properties> Source > Set Data Source…
But if there are a wack of broken data links the above method can be extremely tedious. What if a bunch of GIS data has been moved during some crazy corporate data reorganization? Fortunately, since ArGIS 9, the wise minds at ESRI have made it possible to fully fix broken data links outside ArcMAP in the ArcCatalog environment.
Here’s how:
1) Fire up ArcCatalog
2) Navigate to your .MXD file
3) Right click on the .MXD
4) Select Set Data Sources…
The Set Data Sources window will pop up allowing you to change data sources individually under >New Data Source > Or you can > Select All and change the data sources using a Find and Replace method similar to what you would find in MS Word, Notepad etc… Thank goodness for ArcGIS 9.
Of course you can always update the data source links individually: Right click on the layer> Properties> Source > Set Data Source…
But if there are a wack of broken data links the above method can be extremely tedious. What if a bunch of GIS data has been moved during some crazy corporate data reorganization? Fortunately, since ArGIS 9, the wise minds at ESRI have made it possible to fully fix broken data links outside ArcMAP in the ArcCatalog environment.
Here’s how:

2) Navigate to your .MXD file
3) Right click on the .MXD
4) Select Set Data Sources…
The Set Data Sources window will pop up allowing you to change data sources individually under >New Data Source > Or you can > Select All and change the data sources using a Find and Replace method similar to what you would find in MS Word, Notepad etc… Thank goodness for ArcGIS 9.

ArcGIS atalhos no Arcmap
Accessing ArcMap menu commands
The following table lists shortcut keys for some common commands:
Shortcut | Command | Menu |
Ctrl + N | New | File |
Ctrl + O | Open | File |
Ctrl + S | Save | File |
Alt + F4 | Exit | File |
Ctrl + Z | Undo | Edit |
Ctrl + Y | Redo | Edit |
Ctrl + X | Cut | Edit |
Ctrl + C | Copy | Edit |
Ctrl + V | Paste | Edit |
Delete | Delete | Edit |
F1 | ArcGIS Desktop Help | Help |
Shift + F1 | What's This | Help |
- To access the Main menu, press Alt and use the arrow keys to move through the menus; press Enter to make a selection.
- Press Esc to close a menu or dialog box.
Docking and undocking
- Hold down Ctrl while dragging a toolbar or dockable window to prevent it from docking.
Refreshing or suspending map drawing
- Press F5 to refresh and redraw the display.
- Press F9 whenever you want to suspend or pause drawing so you can make changes to your map without having the map redraw after each change. Press F9 again to resume drawing.
Dragging and dropping
- You can drag and drop or copy and paste multiple layers in the table of contents and between ArcMap sessions. You can also drag and drop or copy and paste data frames between ArcMap sessions.
- Layers that are dragged and dropped between data frames and ArcMap sessions are copied; hold down Ctrl while dragging and dropping to move layers between data frames and ArcMap sessions.
- Data frames that are dragged and dropped are moved; hold down Ctrl while dragging and dropping to copy them.
- Layers that are dragged and dropped inside a data frame are moved; hold down Ctrl while dragging and dropping to copy them.
- Use drag and drop to move layers in and out of a group layer within a data frame.
Navigating the table of contents with the keyboard
- F3 or clicking inside the table of contents puts the keyboard focus on the table of contents so you can navigate and interact with it.
- Esc or clicking the map puts the keyboard focus on the map.
- Home selects the first item in the table of contents.
- End selects the last item in the table of contents.
- Up/Down arrows move through the items in the table of contents.
- Left/Right arrows or the + and - keys expand or contract selected items. They also toggle between the tabs at the bottom of the table of contents when they have keyboard focus.
- Spacebar turns drawing of the selected layers on or off.
- Ctrl + Spacebar turns all the layers in the data frame on or off when a single layer is selected in the table of contents. If the selected layer is part of a group layer or a composite layer, such as an ArcIMS Image Service layer, all the members of that layer will be turned or on off. If multiple layers are selected, Ctrl + Spacebar works like Spacebar by itself and toggles only the selected layers on or off.
- F2 renames the selected item.
- F12 or Enter opens the selected item's properties dialog box. If the currently selected item is a heading, symbol, or label, the Layer Properties dialog box will open with the Symbology tab shown on top.
- Shift + F10 (or the Application key, if your keyboard has one) opens the context menu for the selected item.
- Use Shift + F1 or F1 to obtain context help when an item has keyboard focus or when the properties dialog box tab or a table of contents tab is selected.
- F11 activates a selected data frame, or hold down Alt and click a data frame to activate it.
- When there are multiple data frames in the map, use Ctrl + Tab to cycle through each data frame and activate it.
Selecting items in the table of contents
- Ctrl + click selects or deselects multiple layers or data frames.
- Shift + click selects all layers or data frames between two layers or data frames, within the same table of contents level.
Using mouse shortcuts in the table of contents
- Ctrl + click an expansion control (+/-) to expand or contract all the items at that level. If any items are currently selected, only the selected items are expanded or collapsed.
- Ctrl + click a check box to turn all the layers on or off at that level. If any items are currently selected, only the selected items are turned on or off.
- When dragging layers, hovering over an expansion control with the drop pointer expands or collapses any item.
- Right-clicking features, layers, and data frames always opens a context menu.
Fonte Arcgis
sexta-feira, novembro 18, 2011
Dores ou formigueiros nas mãos? síndrome do túnel cárpico ?
As
mãos são usadas no nosso dia-a-dia como complemento à nossa comunicação
e como instrumento de trabalho. Devem, por isso, ser alvo da nossa
atenção, no sentido de se efectuar uma vigilância apertada a qualquer
sinal ou sintoma de alteração.
O síndrome do túnel cárpico
constitui uma das patologias mais comuns da mão. Trata-se de uma lesão
no nervo mediano provocada porque ele está a ser comprimido na sua
passagem pelo punho que é uma zona muito estreita envolvida por um forte
ligamento e por onde tem de passar muitos tendões e vasos.
Os sintomas são:
- sensação de formigueiro na área de enervação do mediano (três primeiros dedos)
- dor tipo pontada
- dificuldade na execução dos movimentos finos
- nos casos mais evoluídos, há atrofia dos músculos (mão de macaco)
De notar que a sensação de formigueiro, bem como a dor, são
predominantes durante a noite, chegando a causar um incómodo que
impossibilita um sono reparador.
Este tipo de patologia surge,
habitualmente, em indivíduos com trabalhos repetitivos (Ex: caixas de
supermercado, escritores), sendo mais frequente no sexo feminino.
Caso este problema seja diagnosticado numa fase inicial pode ser feito
um trabalho de fisioterapia especifico para tentar ganhar mobilidade e
espaço para o nervo, mas em casos mais avançados será necessária
cirurgia para libertar o nervo.
Após a cirurgia é fundamental
um processo de reabilitação adequado para recuperar a mobilidade da mão e
evitar a formação de fibroses que limitem a mão ou mesmo o sucesso da
operação.
Fisioterapeuta Flávio Mateus
Bases de Dados...
Segue abaixo informações técnicas dos Bancos de Dados, utilizados no Ambiente Computacional.
DB2
DB2
ORACLE/RDBÉ um relational database management system (RDBMS), uma tecnologia de Banco de Dados Relacional que começou a ser distribuída no início da década de 80 em ambientes de médio e grande porte, desde então, a família DB2 tem crescido atingindo as plataformas UNIX e PCs. A maioria do RDBMS usam Structured Query Language (SQL), um data language poderoso e de fácil uso.
INFORMIXAnteriormente conhecido como DEC-RDB uma vez que era um produto pertencente a Digital Equipament Corporation (DEC), é um excelente Sistema Gerenciador de Banco de DadosRelacional. Confiabilidade, escalabilidade, segurança, disponibilidade, integridade, sustentabilidade entre outros, são atributos deste gerenciador, porém duas característica se destacam de outros Banco de Dados: Flexibilidade na localização dos dados: Suporta tanto single-file como multi-file database que possibilita a separação dos objetos (tabelas, índices...) em localizações diferentes, o que facilita em nível de backup e diagnóstico de problemas. Gerênciamento Centralizado de Banco de Dados que permite múltiplos bancos sejam gerenciados por um único gerenciador. A maior utilização do RDB é para o desenvolvimento de sistemas comerciais e sistemas onde a tolerância a falhas é quase inaceitável. Na Unicamp por exemplo, os sistemas de RH, Almoxarifados, Biblioteca (Consulta a Periódicos) rodam em máquinas Alpha 64 bits (Compaq) com S.O. OpenVMS e gerenciador ORACLE-RDB.
Em 1994 o RDB passou a fazer parte da Oracle Corporation passando assim a ser denominado ORACLE-RDB. Desde então, a Oracle vem aprimorando este produto.
Dentre as melhorias, citamos sua capacidade em trabalhar em tecnolgia Client/Server suportando a inclusão de drivers ODBC for ORACLE-RDB e SQL/Services, o qual concede ao seu PC e usuários desktop em MS-DOS, MS Windows, Macintosh, OS/2, OpenVMS e sistemas Sun a oportunidade de acessarem bases de dados em ORACLE-RDB; ferramentas gráficas (GUI - Graphical User Interface) para criar e testar comandos em SQL de grande complexidade; tecnologia pioneira lançada pela Oracle chamada Very Large Memory (VLM) para transações e aplicações de suporte a decisão; backups/restores online; cargas de dados paralelas; Hot Standby para sistemas que não toleram falhas; ORACLE-RDB suporta especificações XA X/Open para processamentos de transações distribuídas.
Segundo a Oracle Corporation, o RDB é um dos softwares industriais de maior sucesso já adquiridos.
MySQLÉ uma servidor de Banco de Dados que combina alta-disponibilidade, performance de processamento de transação on-line (OTLP) com capacidade multimedia. OnLine distribui e administra a concorrência de processos enquanto mantem o isolamento transacional, gerenciando seus próprios recursos de memória compartilhada e I/O em disco.
Um suporte adicional dado pelo INFORMIX-OnLine/Optical permite que os dados estejam subsistemas óticos. O INFORMIX-STAR diagnostica a performance OnLine num ambiente cliente/servidor. O INFORMIX-TP/XA permite usar OnLine o servidor de Banco de Dados como um Gerenciador de Recursos dentro de um ambiente X/Open.
Existem outros produtos INFORMIX, como o DB-Access que é um utilitáro que permite acessar, modificar e recuperar informações do Banco de Dados Relacional OnLine.
PostgreSQLO MySQL é um sistema de gerenciamento de bancos de dados relacionais de código aberto que vem obtendo uma popularidade cada vez maior. Conhecido por sua velocidade, confiabilidade e facilidade de uso, o MySQL é uma ótima opção para a criação de bancos de dados para Web e aplicações sofisticadas.
OracleO posgres é um banco de dados criado em 1986 em Berkeley na Universidade da Califórnia, como sucessor do INGRES, banco de dados relacional, da mesma universidade pelo Prof. Michael Stonebraker e apoiado pelo DARPA (Denfese Advanced Research Projects Agency), pelo ARO (Army Research Office) e pela NSF (National Science Foundation). Em 1995 o postgres foi renomeado para postgres95. Foi acrescentado suporte a linguagem SQL, se otimizou o código tornando ele 30% mais rápido e passou a ser distribuído na internet como open-source. Em 1996 se tornou claro que o nome Postgres95 não sobreviveria ao tempo e ele foi renomeado para PostgreSQL.
O postgreSQL organiza os dados segundo o modelo relacional, que é o mais utilizado hoje em dia (Oracle, DB2, interbase, Microsoft SQL Server, Sybase, etc) são todos bancos de dados relacionais). Ele é também um modelo relacional estendido, oferecendo objetos, OIDs (Identificador de Objetos), objetos compostos, herança múltipla, versões, dados históricos, e uma linguagem de consulta, POSTQUEL, extensão da linguagem do INGRES, QUEL.
Possui também banco de dados cliente-servidor, onde você tem um programa que gerencia o acesso e cuida da integridade dos dados, e outro que vai a interface com o usuário. O mais interessante nesse esquema é que o servidor e o cliente não precisam estar rodando na mesma máquina.
O sistema foi escrito em C e possui cerca de 180.000 linhas de código.
Uma da características mais importantes do Postgres é a armazenar dados históricos. Pode-se fazer uma consulta sobre o estado do banco de dados em um determinado momento do passado. Isto é possível devido à utilização de discos ópticos que armazenam o estado do banco de dados, depois de cada alteração. Um exemplo de utilização dessa característica é uma consulta sobre o custo de um determinado produto a um ano atrás.
Oracle é um poderoso Banco de Dados Relacionais que inclui extensões orientadas a objetos significativas e está se destacando pelo seu inovador modelo de relacionamento de dados e linguagem de programação servidora, que é o PL/SQL. Uma rede (LAN) é suficiente para comportar um Banco de Dados Relacional (DBMS) de tecnologia Cliente/Servidor (C/S) como o Oracle. Em linhas gerais, esta tecnologia tem como característica principal a divisão de tarefas entre o cliente, a estação de trabalho que ordena através das aplicações o acesso aos Bancos de Dados, e o servidor, que executa tarefas.
A Linguagem SQL tem como grandes virtudes: sua capacidade de gerenciar índices sem a necessidade de controle individualizado de índice corrente, algo muito comum nas linguagens de manipulação de dados do tipo registro a registro; sua capacidade de construção de visões, que são formas de visualizarmos os dados na forma de listagens independente das tabelas e organização lógica dos dados e, ainda, a capacidade que dispomos de cancelar uma série de atualizações ou de as gravarmos, depois de iniciarmos uma seqüência de atualizações.
LOCKS INFORMIX
* Tipos de LOCKS / Siglas
* Explicação sobre cada tipo de Locks
* Granularidade de Locks
* Demonstração dos Locks na pratica
* Locks de pagina
* Locks de linha
* Log de base de dados
* Niveis de isolamento
- O que é LOCKS?
Posso definir Lock como sendo um método que o banco de dados utiliza para controlar os acessos a base de dados, tabelas e linhas (Colocando ordem e dando preferencias e exclusividades) , como o banco de dados normalmente tem diversos usuarios conectados de forma simultânea e cada usuário que chega até o banco de dados está com alguma intenção com algum dos objetos da base de dados, para garantir a integridade de dados para que não tenhamos conflitos e possa garantir a consistência dos dados o banco de dados então utiliza do recurso de LOCKS.
Comentario: Mesmo sendo fundamental e de extrema importância a utilização de LOCKS posso dizer que muitas vezes incomoda muito, e piora a situação quando o desenvolvedor desconhece o metodo de trabalhar com LOCKS no INFORMIX, mas nem pensem em imaginar ter um banco de dados sem utilização de LOCKS, isso seria praticamente terminar com toda a integridade de dados que existe.
Certamente todo o DBA vai ter varias situações que irá precisar monitorar LOCKS.
Inicialmente vamos perceber que é uma tarefa bastante complicada para ser feita no INFORMIX, após entendermos o funcionamento iremos mudar de opinião e achar simples e de facil visualização, porém não adianta tentar monitorar se não souber como monitorar e o que monitorar e se não houver algumas scripts ou ferramentas para esse monitoramento acontecer.
* TIPOS DE LOCKS / SIGLAS
Vai encontrar essas referencias no retorno do comando onstat -k na coluna "type"
- Share Lock - S
- Update Lock - U
- Exclusive Lock - X
- Itent Lock - IX
- Byte Lock - B
- Share Ineted exclusive Lock - SIX
- Exclusive key value held by a repeatable reade - XR
* Explicação sobre cada tipo de Locks
Estaremos vendo com frequencia referencias ao campo tblsnum no decorrer do TUTORIAL, para uma simples e facil compreensão abaixo uma referencia. (Abaixo teremos uma explicação de todos os campos de retorno do onstat -k)
* Se o rowid for igual a zero, o tblsnum se refere a um bloqueio de tabela.
* Se o rowid terminar em dois zeros, o bloqueio se refere a um bloqueio de pagina.
* Se o rowid estiver com até 6 digitos e não terminar em zero, o bloqueio se refere a linha.
* Se o rowid estiver com mais de 6 digitos, o bloquieo se refere a um indice
Comentario: Perceba que o significado da coluna "tblsnum" está relacionado com a coluna "rowid"
Share Lock Database - HDR-S ou S
O Share Lock de database é representado como HDR-S na primeira conexão que colocar o LOCK e como S para as demais conexões, toda conexão que chegar na database irá marcar um LOCK se não for definido nenhum especifico lock será automaticamente colocado o SHARE LOCK, esse lock é importante para que não exista alterações na database enquanto houver usuarios conectados.
- Só pode ser colocado um SHARE LOCK na database que não existir um EXCLUSIVE LOCK.
Vamos ver um pouco na pratica:
Como estamos com um banco de teste é possivél fechar todas as conexões existentes, então vamos lá encerre todas as conexões existentes e após isso faça
terminal 1 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ onstat -k # Comando executado
Retorno: Veja abaixo o retorno em tela que mostra que não temos nenhum LOCK no momento.
IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 13 days 04:11:11 -- 3378356 Kbytes
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
0 active, 600000 total, 32768 hash buckets, 5 lock table overflows
Comentario: Não houve retorno nenhum de LOCK pois não existe nenhuma conexão estabelecida.
terminal 2 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ dbaccess bd_teste # Comando executado
terminal 1 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ onstat -k # Comando executado
Retorno: veja abaixo que agora temos o retorno em tela que mostra que existe 1 LOCK tblsnum = 100002 e rowid = 208 do tipo HDR+S (lembra que HDR+S quer dizer que é um SHARE LOCK e é referente a primeira conexão por estar com HDR)
Comentario: Se quiser ver que a proxima conexão ficará apenas com "S" abra um terceiro terminal e se conecte também na bd_teste e execute novamente no terminal 1 o comando "onstat -k" e veja que terá um novo SHARE LOCK só que desta vezz com o type "S" pois é a segundo conexão .
IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 13 days 04:12:18 -- 3378356 Kbytes
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
a4c7d280 0 a14b3a70 0 HDR+S 100002 208 0
1 active, 600000 total, 32768 hash buckets, 5 lock table overflows
Bem você deve estar se perguntando , como sabemos que esse LOCK é referente a database e qual database ... calma ai ... vamos ver já isso ...
sempre que o tblsnum for 100002 representa que é um lock de database
Para saber qual database está em LOCK vamos fazer uma consulta no banco de dados na database sysmaster table sysdatabase
$dbaccess sysmaster # Comando executado
escrever a consulta abaixo (Pode utilizar o dbaccess para essa consulta)
select name , hex(rowid) hex_rawid_database from sysdatabase'
No meu caso retorna # Esse retorno vai variar de acordo com a quantidade de base que existir no servidor e nomes.
name sysmaster
hex_raw_id_tablee 0x00000201
name sysutils
hex_raw_id_tablee 0x00000202
name sysuser
hex_raw_id_tablee 0x00000203
name bd_teste
hex_raw_id_tablee 0x00000208
veja que o retorno do numero 0x00000208 representa o rowid 208 então concluimos que o lock do tblsnum = 100002 do rowid = 208 é referente a database "bd_teste", caso o LOCK estivesse indicando rowid 203 teriamos então um SHARE LOCK na tabela sysuser e assim por diante ...
Vamos ver um exemplo de como funciona o SHARE LOCK .
1° Tentando alterar o nome de uma tabela que esteja com SHARE LOCK.
terminal 1 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ dbaccess bd_teste # Comando executado
terminal 2 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ dbaccess bd_sysmaster # Comando executado
rename database bd_teste to teste_bd # Linha digitada no dbaccess
Essa situação irá retornar os dois erros abaixo demonstrados, isso porque estamos tentando mudar o nome de uma base que existe conexões.
425: Database is currently opened by another user.
107: ISAM error: record is locked.
Share Lock table -- HDR-S ou S
O Share Lock de tabela é representado como HDR+S na primeira conexão que colocar o LOCK como "S" para as demais conexões, esse lock é importante para que não exista alterações na tabela enquanto consultas estejam sendo efetuadas.
Para identificar o SHARE LOCK da table com o comando onstat -k o rowid estará representado pelo numero "0" e o tblsnum estará exibindo de forma hexadecimal o numero da tabela.
- só é permitido colocar um Share Lock na tabela que não existir um exclusivo Lock
Vamos trabalhar na pratica um pouco:
Terminal 1 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
Comentario: Vamos colocar o Lock explicitamente na tabela
$ dbaccess bd_teste # Comando executado
begin; lock table tabela1 in share mode # Linha digitada no dbaccess
terminal 2 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
Comentario: Vamos verificar o Share lock
$ onstat -k # Comando executado
retorno do onstat -k
IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 13 days 06:03:44 -- 3378356 Kbytes
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
101209bc 0 9ffed0ec 0 HDR+S 100002 208 0
105dad84 0 9ffed0ec 101209bc HDR+S 700264 0 0
2 active, 600000 total, 32768 hash buckets, 5 lock table overflows
analisando o retorno do comando onstat -k
Neste retorno temos 2 Locks do tipo Share onde os dois são os primeiros a serem colocados. (Sabemos que são os primeiros porque estão com HDR)
Agora pergunto a todos, porque 2 Locks se neste momento só estamos explicitamente colocando LOCK na "tabela1" ?
É claro que todos que estão acompanhando esse tutorial já sabem a resposta na ponta da lingua ... a resposta é porque para chegar na tabela precisa conectar na database e para toda a conexão aberta com a database é criado um share lock.
Bem como já definimos acima o SHARE LOCK de database sabemos que está conectado na database bd_teste então vamos agora analizar o SHARE LOCK da tabela.
tblsnum = 700264 # Essa é a tabela em hexadecimal então coloque na query abaixo e irá conseguir identificar o nome da tabela , lembrando acrescente 0x00 antes do código.
Sabemos que se trata de um SHARE LOCK na tabela porque o rowid é igual a 0
SELECT tabname FROM systables
WHERE hex(partnum) = "0x00700264"
Resultado da query:
tabname teste1 # Tabela "teste1"
Então concluimos que tblsnum = 700264 é o mesmo que tabname teste1 ou seja a tabela teste1 tem um SHARE LOCK.
outra maneira de conseguir informações de qual tabela é referido o numero hexadecimal retornado pelo onstat -k na coluna tblsnum será através do comando oncheck -pt
$ oncheck -pt "0x00700264" # Comando executado retorno do comando
TBLspace Report for bd_teste:gerenc.teste1
Physical Address 9:1169997
Creation date 10/05/2010 18:11:51
TBLspace Flags 801 Page Locking
TBLspace use 4 bit bit-maps
Maximum row size 1
Number of special columns 0
Number of keys 0
Number of extents 1
Current serial value 1
Pagesize (k) 2
First extent size 8
Next extent size 8
Number of pages allocated 8
Number of pages used 1
Number of data pages 0
Number of rows 0
Partition partnum 7340644
Partition lockid 7340644
Extents
Logical Page Physical Page Size Physical Pages
0 9:2176832 8 8
Exclusive Lock DATABASE -- HDR+X ou X
Lock exclusivo em database pode ser colocado de modo explicito ou pode ser gerado através de utilitarios do tipo dbexport , exclusivo Lock na database será representado sempre na coluna de type como HDR+X ,detalhe neste caso de LOCK de database é que somente pode existir um unico processo com o exclusivo lock então não teremos situações de existir um Lock de database que não seja HDR+X que seja apenas "X" isso seria impossivél.
- Não é possivél colocar EXCLUSIVO LOCK quando já existir um SHARE LOCK , caso tente colocar será retornado erro -425 e -107
vamos provacar EXCLUSIVO LOCK efetuando um export da base de dados
Terminal 1 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ dbexport bd_teste # Comando executado
terminal 2 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ onstat -k # Comando executado
Retorno do comando onstat -k
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
101209bc 0 9ffed0ec 0 HDR+X 100002 208 0
1 active, 600000 total, 32768 hash buckets, 5 lock table overflows
Analisando o comando, podemos relembrar um pouco o que foi explicado no SHARE LOCK para database.
"o numero Rowid é o hexadecimal que refere o nome da database na tabela sysdatabase da database sysmaster"
"encontraremos o nome da database correspondente ao rowid numero 208 através da consulta,
select name , hex(rowid) hex_rawid_database from sysdatabase
"tblsnum = 100002 referencia-se a LOCK de DATABASE"
no comando acima o type que nos retorna é "HDR+X" isso quer dizer que base de dados está com exclusivo Lock isso quer dizer que não será possivél nenhuma outra conexão com a base de dados que se referencia na sysdatabase da database sysmaster como hexadecimal "0x00000208" e se não conseguimos mais conectar por estar EXCLUSIVO LOCK isso quer dizer que nenhum outro tipo de LOCK será criado nesta base de dados. (Meio que obvio isso mas importante entender isso)
tentativa de conexão na base de dados bd_teste durante o exclusivo lock "HDR+X"
terminal 2 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ dbaccess bd_teste # Comando executado
Retorno de erro quando se tenta conectar em uma base de dados que esteja com "HDR+X"
425: Database is currently opened by another user.
107: ISAM error: record is locked.
Exclusive Lock TABLE -- HDR+X ou X
O exclusivo lock de uma tabela é utilizado para previnir que ninguem faça leitura ou escrita na tabela, logico que para algumas regras podem existir execeções, neste caso pode ser utilizado nivéis de isolamento "isolation level" do tipo leitura suja "dirty reader" porém essa execeção pode causar incosistencia dos dados que estejam sendo recuperados.
Vamos ver na pratica:
terminal 1 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ dbaccess bd_teste # Comando executado
begin; lock table teste1 in exclusive mode
terminal 2 # Quando citar Terminal estou me referindo a um Shell no prompt do usuario INFOMIX
$ onstat -k # Comando executado
retorno do comando onstat -k
IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 14 days 04:03:23 -- 3378356 Kbytes
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
101209bc 0 9ffed0ec 0 HDR+S 100002 208 0
105dad84 0 9ffed0ec 101209bc HDR+X 700264 0 0
2 active, 600000 total, 32768 hash buckets, 5 lock table overflows
Bem analisando o retorno acima podemos verificar que temos um Share Lock na database motivado pela conexão que estabelecemos quado abrimos a conexão para colocar a tabela em LOCK, temos também um EXCLUSIVE LOCK na tabela hex 0x00700264 que identificamos pelo rowid = 0 esse exclusive Lock nos forçamos acontecer..
quarta-feira, novembro 16, 2011
Dicionário Português-Madeirense
Palavras:
(*) para além do significado comum.
Expressões:
Abicadoiro | precipício |
Abicar | deitar ao chão, |
Aprumar | toma juízo; |
Atarracado | atrofiado |
Atopir | enterrar; |
Azógar | morrer, geralmente aplicado animais |
Azogue | íman; |
Bilhardeira | coscuvilheira, alguém que passa a vida contar os segredinhos e mentirinhas da vida dos outros. |
Bizalho | pintainho; |
Bragado | habitante de Santana, são pessoas muito simpáticas, inteligentes, etc. ,etc. … |
Bordão | algo parecido com um cajado, pode ser usada como bengala ou para dar tareias nos putos ; |
Buginho | cachorrinho; |
Buzíco | puto; |
Buzina | brisa muito fria (*) |
Breca - | fazer uma birra; |
Cageirão | pequeno recipiente de metal; |
Cambado | coxo, aleijado; |
Cambriola | cambalhota; |
Canalha | putos, miúdos… (*) |
Carreira | correr (dar uma carreira = correr) |
Carroulo | parte de trás do pescoço; |
Catamôlho | miúdo, puto; |
Catrapilha | escavadora; |
Chavelha | habitante de Câmara de lobos, é algo próximo a um “habitante de Chelas”… se virem um fujam!!! |
Debadoira | algo k oscila |
Escanchar | abrir as pernas |
Escarnecer | difamar, fazer troça de alguém |
Espinhos | borbulhas(*) |
Esvarar | escorregar |
Forrica | diarreia; |
Furado | túnel (*); |
Giga | cesto de vimes usado para transportar comida; |
Guane | fertilizantes químicos |
Horário | autocarro (*) |
Jogar | atirar ou derrapar(*) |
Matina | pequeno almoço |
Molhelha | é uma cena de colocar na cabeça para facilitar o transporte de objectos ás costas; |
Olho-de-boi | lanterna a pilhas; |
Patinhar | pisar algo |
Pedoa | ferramenta para apanhar erva, é como uma foice mas sem dentes; |
Pineco | pintainho; |
Pisar | magoar (fisicamente) (*) |
Relaxado | má pessoa,(*) |
Rês | vaca |
Restolho | cobertura da casas típicas, palha de trigo seca; |
Revesso | mal criado, mal comportado; |
Roeza | fome; |
Rovalhar | chuva miudinha; |
Semelado | calado, introvertido; |
Semilhas | batatas; |
Soquete | puxão ou pancada ; |
Trapicho | casa de malucos, ou simplesmente uma “loucura” |
Tarraço | alguém que anda sempre na borga, bebado; |
Vilhão | pessoa que mora no campo; |
Expressões:
“Agora arrota” | Significa apanhar com as consequências mas num tom de “toma lá k já almoçaste!” |
Assubensu (“a sua benção”) | é uma espécie de comprimento que se dá aos familiares (tios, avos, padrinhos); ,já não se usa muito. |
Dieus t’abensaue (Deus te abençoe) | é a resposta a “assubensu” |
Vasilha torta | alguém que só faz asneira ou algo parecido com isso… |
Talvinaum (talvez não) | resposta simpática (ou irónica) para não contrariar alguém.. |
Fazer d’arrebendita | fazer algo de propósito, por vingança. |
BenzateDeus! | expressão de admiração… |
Ah canas! | expressão de admiração, também conhecida na versão “ah cão!” |
Qdo o burro não pode, a culpa é da molhelha. | alguém que não quer assumir que a culpa é sua e por isso desvia as culpas para outro. |
Vilhão não pode ver sem tocar com a mão. | diz-se geralmente quando alguém mexe no que não deve. |
Filha da pêra / sacola / sacrista | expressões que são ditas para não dizer coisas piores…. |
De cangalhas | virado ao contrario, de pernas para o ar. |
“Caminho do carro” | estrada (por onde passa o autocarro). |
terça-feira, novembro 15, 2011
Cálculo do Valor dos cortes e Imposto no Subsídio de Natal 2011
O ano de 2011 vai pressupor o aperto e cinto a muitas famílias Portuguesas, uma das primeiras medidas anunciadas por Passos Coelho é o imposto sobre o valor do subsídio de Natal já este ano
O ano de 2011 vai pressupor o aperto e cinto a muitas famílias Portuguesas, uma das primeiras medidas anunciadas por Passos Coelho é o imposto sobre o valor do subsídio de Natal já este ano.
O primeiro-ministro Pedro Passos Coelho
anunciou que o Governo vai cobrar este ano uma “contribuição especial
que incidirá sobre todos os rendimentos que estão sujeitos a
englobamento no IRS” que terá um “peso equivalente a 50% do subsídio de
Natal acima do salário mínimo nacional”.
Há ainda muito por explicar, mas do
discurso do primeiro-ministro depreende-se que o corte de 50% é feito
sobre o montante do subsídio de Natal descontado do valor do salário
mínimo (485 euros).
.
Não sobre o valor total do subsídio de Natal portanto, mas do valor que excede o salário mínimo.