terça-feira, novembro 29, 2011

Como calibrar as cores no ArcGis

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

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)








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 health Google Health e PowerMeter serão descontinuados
health logo Google Health e PowerMeter serão descontinuados 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
google powermeter Google Health e PowerMeter serão descontinuados
powermeter logo Google Health e PowerMeter serão descontinuadosO 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.

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.

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
É 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.
ORACLE/RDB
Anteriormente 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.
INFORMIX
É 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.
MySQL
O 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.
PostgreSQL
O 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
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

* O que é LOCKS?
* 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:
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;
(*) para além do significado comum.

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.

Assim sendo, o efeito do novo imposto será o seguinte:

 

Fonte Webempregos

 

LinkWithin

Related Posts Widget for Blogs by LinkWithin