Erro ColdFusion: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

Estava com um problema ao conectar as DSNs de mysql ao banco de dados, o seguinte erro esporadicamente ocorria:

1
2
3
"Error Executing Database Query.Could not create connection to database server. Attempted reconnect 3 times. Giving up."
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Caused by: java.security.AccessControlException: access denied ("java.net.SocketPermission" "mysql.franklin.com.br" "resolve")

O problema era que acontecia em alguns momentos, não era sempre. Pesquisando pelo erro achei o link abaixo
http://stackoverflow.com/questions/5489880/tomcat-6-and-mysql-5-x-connection-error-on-ubuntu
Onde o ocorria o mesmo problema mas no Java, como o CF roda com o Java, tentei descobrir como fazia a alteração no ColdFusion.
No servidor onde trabalho tem o sandbox habilitado para o ColdFusion, para resolver isso tive que ir, no administrador do CF, em security > Sandbox Security > path do site que acontecia o problema > Server/Ports
E no campo Server/IP Address, eu informei o IP de conexão com o servidor mysql e a porta que eu uso para conexão, assim a permissão de connect,resolve foi dada, conforme o link do stackoverflow, e tudo funcionou sem problemas 😀

Publicado em ColdFusion, mysql | Com a tag , , | Deixar um comentário

Tipo nmap com o PowerShell

Precisava verificar IPs de um range para saber se estavam em uso, no Linux o serviço é bem fazer de se fazer, usando nmap -v -sP 192.168.0.0/24 se descobre fácil. No Windows eu dei uma pesquisada e achei o System.Net.Networkinformation.Ping que me ajudou bastante. O comando ficou assim

$ping = New-Object System.Net.Networkinformation.Ping
1..254 | % { $ping.send("192.168.100.$_") | select address, status | where status -eq 'Success'}

Resumindo é um foreach de 1 a 254 que vai testando o IP.

Baseado nas informações do seguinte link:
http://www.thomasmaurer.ch/2011/11/powershell-ping-ip-range/

Publicado em Power Shell, Windows | Com a tag , , | Deixar um comentário

Instalar recursos do Windows 2012 automaticamente

Meu cenário era o seguinte: eu tinha um servidor web com todas as features instaladas, tudo pronto, mas precisava criar um servidor com os mesmos recursos em outro lugar, o que fiz para agilizar o processo e para depois automatizar foi o seguinte. Peguei um servidor que eu já tinha pronto e exportei a lista das features já instaladas, fiz isso com o seguinte comando no powershell.

Get-WindowsFeature | ? { $_.Installed } | Select Name | ForEach-Object { $_.Name } | Out-File .\Features.txt

Traduzindo a linha: pega o nome de todas os recursos da máquina que estejam instalados e joga cada nome em uma linha dentro do arquivo Features.txt

Com esse .txt, copiei para o servidor recém instalado, abri o powershell e executei o seguinte comando

$(Get-Content .\Features.txt) | Add-WindowsFeature

Daí é só esperar ser tudo instalado :D, me poupou bastante tempo esse processo.
Ah, uma coisa, a máquina deve ter conexão com a internet para concluir a instalação com sucesso.

Link base: Importing and Exporting Windows Features with PowerShell

Publicado em Power Shell, Windows | Com a tag , , | Deixar um comentário

Configurar o TTL no ColdFusion

Estava com problema para enviar e-mail no ColdFusion 9, os logs de envio do CF me diziam que não era possível conectar no host que eu utilizava, no meu servidor o host que eu utilizava respondia corretamente, inclusive a conexão por telnet tinha sucesso, mas no CF não.

Descobri que o IP do host tinha sido alterado, e que a JVM que o ColdFusion usa um sistema de cache próprio, que não tem vinculo com o sistema operacional, então reiniciei o servidor do ColdFusion para que o cache fosse limpo, o host voltou a funcionar.

Pesquisando mais, descobri que a configuração padrão é ter o cache com tempo de vida infinito, alterei a configuração padrão para que o TTL tivesse o tempo de uma hora, o arquivo que alterei foi

{ColdFusion_dir}/lib/security/java.security

Alterei a linha

networkaddress.cache.ttl=-1

para

networkaddress.cache.ttl=3600

O valor é em segundos.

O link abaixo me ajudou a resolver esta situação

CFMX and DNS caching

Publicado em ColdFusion, Windows | Com a tag , , , , , | Deixar um comentário

Substituir string em arquivo com PowerShell

Para dar replace em uma determinada string dentro de um arquivo no powershell, o comando é o seguinte

PS C:\> (Get-Content %caminhoDoArquivo%).Replace('%stringDeEntrada%', '%stringDeSaida%') | Set-Content %caminhoDoArquivo%

O comando lê o conteúdo do arquivo para substituir o conteúdo de entrada pelo conteúdo de saída, e então grava o conteúdo novo no arquivo informado.

Publicado em Power Shell | Com a tag , , , | Deixar um comentário

Pegar tamanho das bases no sql server

EXEC sp_MSforeachdb 'use ? exec sp_spaceused'

sp_spaceused é o cara que ve as informações de cada base, mas se rodar só ele, vai aparecer as informações para a base que está no contexto, o sp_MSforeachdb faz um foreach nas bases e vai rodando o sp_spaceused para cada uma, o “use ?” vai alterando as bases que o sp_MSforeachdb buscou.

Publicado em SQL, SQL server, Windows | Com a tag , , | Deixar um comentário

Redirecionamento de IP no Windows

Precisei redirecionar tudo que chegava para um IP específico no servidor em uma porta específica para um destino e porta específica. Consegui fazer com o comando abaixo

netsh interface portproxy add v4tov4 listenport=1433 listenaddress=192.168.0.1 connectport=1433 connectaddress=192.168.1.1 protocol=tcp

O comando acima adiciona uma configuração de ipv4 para ipv4 para todos os pacotes TCP que chegarem no IP 192.168.0.1 na porta 1433, e manda tudo para o IP 192.168.1.1 na porta 1433.
Lembrando que para a regra funcionar, é necessário que nenhum serviço esteja executando a porta que está no listenport, no meu caso, precisei parar o serviço do SQL Server, pois ele usa a porta 1433 como padrão.

Publicado em SQL server, Windows | Com a tag , , , , | Deixar um comentário

Mudar trust level com o appcmd para todas as versões do asp.net

Aprendi que para mudar o trustLevel de somente um site cadastrado no IIS 8 eu poderia usar o comando abaixo

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot

Ele faz commit no web.config do framework, e a configuração só vale para site.com.br. A configuração fica tipo isso

<location path="site.com.br">
   <system.web>
       <trust level="Full" />
   </system.web>
</location>

O problema que eu tive foi que o comando alterava o trust level somente para a versão 4 do asp.net, mesmo se o site estivesse utilizando a versão 2.0, era a versão 4 que era alterada. Pesquisando descobri que dá pra informar a versão no final do comando, assim é possível configurar tanto para a versão 2 quanto para a versão 4. O exemplo abaixo configura o trust level para full na versão 2.0 do asp.net.

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot /clr:2

O site que me ajudou com isso foi esse:
http://weblogs.asp.net/owscott/targeting-the-net-framework-version-and-bitness-in-appcmd

Publicado em asp.net, iis, Windows | Com a tag , , , , , , | Deixar um comentário

Exemplo para pegar valor do teclado no PHP

É possível buscar um valor do teclado pelo PHP executado como cliente com o exemplo abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
echo "Tem certeza que quer fazer isso? Digite 'sim' para continuar: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != 'sim'){
    echo "SAINDO!\n";
    exit;
}
fclose($handle);
echo "\n"; 
echo "Ok, feito!\n"
?>

Baseado no exemplo do link: http://stackoverflow.com/questions/15322371/php-wait-for-input-from-command-line

Publicado em php | Com a tag | Deixar um comentário

Atribuindo máscara de afinidade do processador

Nas versões mais recentes do IIS é possível atribuir processadores específicos para uma pool de aplicativo, alterando o valor do atributo Processor Affinity Mask. Para definir quais processadores a pool de aplicativo irá utilizar, podemos seguir a tabela abaixo:

tabelaCpu

Se quiser utilizar as CPUs 0 e 2, então some os valores do último campo, informe o valor 5, se quiser utilizar as CPUs 1, 2 e 3, informe o valor 14.

Mais detalhes explicando no link abaixo:

http://serverfault.com/questions/471105/formula-for-processor-affinity-mask-iis

Publicado em iis, Windows | Com a tag | Deixar um comentário