Archive for the ‘ColdFusion’ category

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

fevereiro 8th, 2017

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 😀

Configurar o TTL no ColdFusion

novembro 10th, 2016

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

cfimage no coldfusion

fevereiro 6th, 2014

Tive problemas com o CFimage do ColdFusion utilizando o sandbox, descobri que era necessário dar permissão para o diretório que ele estava tentanto utilizar como temporário. Descobri isso criando um teste.cfm com o conteúdo abaixo

1
<cfdump var="#cacheGetProperties()#">

Depois de saber o diretório que tenho que dar permissão, executei um teste copiando uma imagem de um lugar para outro, com o script abaixo

1
2
3
4
5
6
7
8
9
10
<cfimage
    name = "teste"
    source = "c:\webroot\imagem.jpg"
    action = "read">
<cfimage
    action = "write"
    destination = "c:\webroot\imagemCopiada.jpg"
    source = "#teste#"
    overwrite = "yes"
    quality = "0.9">

Feito com base desse link

Exemplo encrypt/decrypt em ColdFusion

novembro 11th, 2013

Cole o código em um arquivo .cfm para testar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<h3>Encrypt Example</h3> 
<!--- Do the following if the form has been submitted. ---> 
<cfif IsDefined("Form.myString")> 
    <cfscript> 
        /* GenerateSecretKey does not generate key for the CFMX_COMPAT algorithm, 
        so use the key from the form. 
        */ 
        if (Form.myAlgorithm EQ "CFMX_COMPAT") 
            theKey=Form.MyKey; 
        // For all other encryption techniques, generate a secret key. 
        else 
            theKey=generateSecretKey(Form.myAlgorithm); 
        //Encrypt the string 
        encrypted=encrypt(Form.myString, theKey, Form.myAlgorithm, 
            Form.myEncoding); 
        //Decrypt it 
        decrypted=decrypt(encrypted, theKey, Form.myAlgorithm, Form.myEncoding); 
    </cfscript> 
 
    <!--- Display the values used for encryption and decryption,  
            and the results. ---> 
    <cfoutput> 
        <b>The algorithm:</b> #Form.myAlgorithm#<br> 
        <b>The key:</B> #theKey#<br> 
        <br> 
        <b>The string:</b> #Form.myString# <br> 
        <br> 
        <b>Encrypted:</b> #encrypted#<br> 
        <br> 
        <b>Decrypted:</b> #decrypted#<br> 
    </cfoutput> 
</cfif> 
 
<!--- The input form.---> 
<form action="#CGI.SCRIPT_NAME#" method="post"> 
    <b>Select the encoding</b><br> 
    <select size="1" name="myEncoding"> 
        <option selected>UU</option> 
        <option>Base64</option> 
        <option>Hex</option> 
    </select><br> 
    <br> 
    <b>Select the algorithm</b><br> 
    <select size="1" name="myAlgorithm"> 
        <option selected>CFMX_COMPAT</option> 
        <option>AES</option> 
        <option>DES</option> 
        <option>DESEDE</option> 
    </select><br> 
    <br> 
    <b>Input your key</b> (used for CFMX_COMPAT encryption only)<br> 
    <input type = "Text" name = "myKey" value = "MyKey"><br> 
    <br> 
    <b>Enter string to encrypt</b><br> 
    <textArea name = "myString" cols = "40" rows = "5" WRAP = "VIRTUAL">This string will be encrypted (you can replace it with more typing). 
    </textArea><br> 
    <input type = "Submit" value = "Encrypt my String"> 
</form>

Retirado daqui

Esqueceu a senha de acesso ao administrador do ColdFusion?

outubro 21st, 2013

Don’t worry, é possível recuperar o acesso novamente. Faça o seguinte, procure pelo arquivo neo-security.xml no diretório do CF, na versão 9 está dentro do diretório lib. Após, abra o arquivo em um editor de texto e procure por admin.security.enabled, altere o valor da tag para false, reinicie o serviço do coldfusin, após acesse o link de administração do servidor, não será solicitado senha, então grave uma senha nova e desfaça o processo alterando o valor do admin.security.enabled para true, não esqueça de reiniciar o ColdFusion no final do processo.

Lembrando que enquanto o valor da tag admin.security.enabled estiver false, qualquer um poderá acessar a administração do coldfusion do teu servidor.

Post no ColdFusion com mais de 100 parâmetros

junho 11th, 2013

Por padrão o limite de parâmetros num post no ColdFusion são de 100 valores, se passar de 100 ocorrerá erro 500. Para resolver isso faz o seguinte, faz backup do arquivo  <ColdFusion_Home>/lib/neo-runtime.xml, ou <ColdFusion_Home>/WEB-INF/cfusion/lib/neo-runtime.xml se for uma instalação multiserver, feito o backup,  edite esse arquivo, procure a linha

1
"<var name='postSizeLimit'><number>100.0</number></var>"

depois dela adicione a seguinte linha se ela não existir no arquivo

1
"<var name='postParametersLimit'><number>100.0</number></var>"

O número informado no postParametersLimit será o novo limite de parâmetros passados no post do CF.

Fonte: http://helpx.adobe.com/coldfusion/kb/coldfusion-security-hotfix.html

Como criar DSN no ColdFusion para MS access 2007

fevereiro 28th, 2012

Como criar uma DSN no ColdFusion para MS access 2007, com extensão *.accdb?

Então, primeiramente, tu tem que instalar o driver pro servidor reconhecer a extensão *.accdb, esse driver tu encontra no site da Microsoft, especificamente no link http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23734

Depois de instalar, vai no painel de controle > ferramentas administrativas > fontes de dados (OBDC), na janela que abrir clica na aba fonte de dados do sistema.

Nessa parte clique em adicionar, na nova janela que abrir, selecione “Microsoft Access Driver(*.mdb, *.accdb)” 12.00.4518.1014, tem que ser exatamente isso, depois clique em cluir, dê um nome para o Data Source, clique em selecionar para selecionar o banco access com a extensão .accdb, depois clica em ok nas janelas abertas.

Pronto, agora vamos para o administrador do ColdFusion, lá tu cria uma DSN com o driver “ODBC Socket”, dá um nome para a DSN e seleciona a DSN que tu crio no painel de controle, no sistema do ColdFusion, então é só clicar em Submit para criá-la.

Fonte: http://blogs.adobe.com/vikaschandran/2010/12/03/creating-ms-access-2007-database-accdb-extension-datasource-with-coldfusion-9/

Exemplo de envio de email com CFMAIL

fevereiro 28th, 2012
1
2
3
4
5
6
7
8
9
<cfmail
	from = "Script de envio de emails ASP <email@dominio.com.br>"
	to = "Contato Site <email@dominio.com.br>"
	subject = "Assunto do email"
	server = "smtp-web.kinghost.net"
	type = "text"
>
Este é um email teste
</cfmail>

Verificar diretório temporário do ColdFusion

setembro 19th, 2011

Cria um arquivo chamado tmp.cfm com o seguinte código

1
2
3
4
5
6
<h3>GetTempDirectory Example</h3>
 
<p>The temporary directory for this ColdFusion server is
<cfoutput>#GetTempDirectory()#</cfoutput>.</p>
<p>We have created a temporary file called:
<cfoutput>#GetTempFile(GetTempDirectory(),"testFile")#</cfoutput></p>

Além de informar o diretório temporário que ColdFusion tá usando pra tua aplicação, ele já testa a escrita no diretório criando um arquivo temporário.