MySphere Posts

O servidor Domino não possui a funcionalidade de resposta automática quando um usuário recebe correio. O motivo para implementar isto  Ã© uma simples mudança de telefone e endereço, ou seja , para cada correio que uma pessoa receber um aviso automático irá ser enviado para avisar que o endereço da empresa irá mudar e também o telefone.  Pesquisei um pouco e achei “pronto” um TN    que sendo “traduzido” resolve o problema. A desvantagem é que para cada correio que chegar vai sair outro, o tráfego vai aumentar bastante. Não encontrei o link do TN no site da IBM o resumo do TN segue abaixo

You can use a LotusScript agent to test for Internet addresses and limit the replies to those senders. For example, the agent below would use the trigger of “After new mail arrives.” The agent tests for an Internet address and then sends a reply to the sender with a “Thank you for your inquiry” response.

NOTE:  The code below is a sample script provided to illustrate one way to approach this issue. In order for this example to perform as intended, the script must be laid out exactly as indicated below. IBM Support cannot customize this script for a customer’s own configuration.

In the script, you can customize the BodyText variable as desired. The code can be placed in the Initialize event.

Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim MailDoc As NotesDocument
Dim Body As NotesRichTextItem
Dim OldBody As NotesRichTextItem
Dim OriginalFromAddress As String
Dim Subject As String
Dim BodyText As String

‘This is the body of the email, Chr(10) indicates a new line
‘you can change the body to whatever you want following this format

BodyText = “Thank you for your inquiry.” + Chr(10) +_
“This is an automatically generated response. Please do not reply.” + Chr(10) +_
“We will contact you shortly regarding your inquiry.” + Chr(10) +_
“Regards,” + Chr(10)+_
“John Doe” ‘SET THIS TO DESIRED NAME

‘set objects
Set db = session.CurrentDatabase
Set col = db.UnprocessedDocuments
Set doc = col.GetFirstDocument

‘set the subject of the email to go out
Subject = “Re: ” +  doc.GetItemValue(“Subject”)(0)

‘loop through the document collection
While Not doc Is Nothing
‘check the address to see if it contains an @ sign
If doc.HasItem(“SMTPOriginator”) Then
OriginalFromAddress = doc.GetItemValue(“SMTPOriginator”)(0)
Elseif doc.HasItem(“From”) Then
OriginalFromAddress = doc.GetItemValue(“From”)(0)
Else
Goto nextdoc
End If

‘if an @ sign is found, send a reply
If Instr(OriginalFromAddress,”@”) <> 0 Then
‘create a new mail document
Set MailDoc = db.CreateDocument

‘set the subject and from fields
Call MailDoc.ReplaceItemValue(“Subject”, Subject)

‘set the body and append the body from the original email
Set OldBody = doc.GetFirstItem(“body”)
Set body = MailDoc.CreateRichTextItem(“body”)
Call body.AppendText(bodyText)
Call body.AddNewline(2)
Call body.AppendRTItem(oldBody)

‘send the document
Call MailDoc.Send(False,OriginalFromAddress)
End If

Nextdoc:
‘update the processedDoc flag so that this document isn’t processed
‘again on a subsequent run

Call session.UpdateProcessedDoc(doc)

‘get the next document in the collection
Set doc = col.GetNextDocument(doc)
        Wend

Resposta

Neste fim de semana fizemos um upagrade de um Domino 7.0.2 para a versão 8.5. O Linux instalado antes era o SUSE SLES 9 SP3.
O Domino 8.5 não suporta o SUSE 9 então solicitamos o upgrade para versão SUSE SLES 10 SP1, pois já existem 03 servidores em produção com este Linux.
O upgrade do Linux foi realizado, mas a versão instalada foi o SUSE SLES 10 SP2. Aparentemente tudo ok pois os requesitos de sistema não informam nada sobre SP1 ou SP2 para o SUSE. A instalação terminou com um “warning” informado que o SUSE 10 não é suportado. Foi um warning mas devia ser um “fail” pois o Domino assim que foi iniciado apresentou um CRASH. Veja abaixo a mensagem de erro:
 
06/20/2009 06:22:49 PM  HTTP Server: Using Internet Site Configuration View
Exception in thread “main” java.lang.SecurityException: Signers of ‘lotus.domino.axis.InternalFault’ do not match signers of other classes in package
        at java.lang.ClassLoader.checkPackageSigners(ClassLoader.java:312)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:254)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:506)
      
      ………
Exception in thread “main” java.lang.SecurityException: Signers of ‘lotus.domino.axis.message.RPCParam’ do not match signers of other classes in package
        at java.lang.ClassLoader.checkPackageSigners(ClassLoader.java:312)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:254)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:506)
      
       ……….
Exception in thread “main” java.lang.SecurityException: Signers of ‘lotus.domino.types.Fault’ do not match signers of other classes in package
        at java.lang.ClassLoader.checkPackageSigners(ClassLoader.java:312)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:254)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:506)
        at java.net.URLClassLoader.access$300(URLClassLoader.java:77)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:905)
        at java.security.AccessController.doPrivileged(AccessController.java:284)

Stack base = 0xbfeb088c, Stack size = 556 bytes
Fatal Error signal = 0x0000000b PID/TID = 9362/-1263466832
6/20/2009 18:22:51  Running NSD
NSD is in progress ……………..

Verifiquei o install.log e percebi que ele removeu alguns arquivos do diretório /java/bin. Como era um upgrade achamos que poderia ser até normal.
A task que gerava o CRASH era a HTTP. Abrimos um PMR e a IBM não tinha ainda nenhum caso parecido, mas ajudaram pois fizeram um análise do NSD e detectaram que alguns arquivos estavam faltando.

Solução:  O Linux foi reinstalado para SUSE SLES 10 SP1 e reinstalamos o Domino 8.5, tudo funcionou perfeitamente.
Portanto cuidado com o SUSE SLES 10 SP2, infelizmente não ficamos sabendo a causa do problema pois o servidor tinha de voltar a operar e a janela de manutenção já estava acabando.

Domino

A tarefa update pode causar problemas de performance quando o servidor tem muitos bancos de dados principalmente quando os bancos de dados são grandes. Uma alternativa para evitar problemas, é agendar a frequência de atualização do índice. Isto depende de cada aplicação, do design das views.  Uma opção interessante é o agendamento onde pode-se configurar de quanto em quanto tempo ou quando o índice vai ser atualizado.
Para configurar vá nas propriedades do banco de dados e configure a atualização do full text index como na figura abaixo:

Image:Agendar Update do Full Text

Depois crie um programa no Domino Directory para atualizar o índice;

Image:Agendar Update do Full Text
Image:Agendar Update do Full Text

full text

Um log que pode ser muito útil para rastrear as “tarefas” administrativas pode ser configurado no Portal. O seriço é o Auditing Service que gera um log de vários eventos tais como criação de portlets entre outras. Para ver mais detalhes veja neste link.
O serviço tem de ser habilitado alterando-se o arquivo AuditService.properties e reiniciar o portal

portal

Não considero uma boa política ficar restringindo o uso do Sametime, é uma ferramenta de comunicação muito poderosa, mas… (sempre tem um mas) existem usuários que abusam ou o chefe não compreende a importância do uso do Sametime.
Fui questionado, por um cliente sobre qual a melhor maneira de restringir o uso do Sametime ou seja que alguns usuários não usem o produto. O TN1166845 mostra algumas maneiras de atingir o objetivo.
A opção que fizemos foi usar um atributo do Diretório Domino existente (evita customização) e alterar o filtro de autenticação e busca do Sametime.

sametime

SPAM é uma verdadeira praga. Estou procurando soluções para combater esta praga nos nossos servidores e algumas opções já me foram apresentadas, umas pelo google e outra pelo Paulo que trabalha comigo. (Que me lembrou do produto da IBM).

1 – Lotus Protector for Mail Security – É um produto (appliance) que pode ser um Hardware ou VM.
2 – Montar um servidor com SPAMASSASIN – É uma opção open source que é muito usada. Achei alguns links  que mostram como montar um servidor destes.
Link 1 e Link 2. Achei o Link 2 mais fácil de acompanhar.

Vou tentar primeiro o Lotus Protector.

spam

Agora que o feriado já passou vou iniciar mais um período de certificações. Tenho como objetivo renovar as certificações Domino Administrator, Domino Designer e também WebSpehre Portal Administrator. Vou repetir a estratégia de sempre.
A primeira que irei renovar será a Domino Administrator para versão 8. O ambiente que terei de preparar vai ser em uma VM pois meu Note já está com tudo instalado na versão 8.5 e como o objetivo é só a prova mesmo não vale a pena remover tudo.

Uncategorized

Hoje um problema no mínimo curioso. Eu sempre utilizei o Notes em inglês e sempre o empacotamento com Administrator e Designer, raramente instalo Notes em Português.
Um usuário hoje queria criar uma réplica em sua estação e ao clicar com o botão direito a ação de criar réplica não aparecia. Olhei na ACL e não encontrava o problema.
O Paulo, que trabalha comigo, já havia visto este problema em estações e passou a dica. Quando instalamos somente o Notes algumas opções são consideradas “Avançadas” para os usuários.
No Notes 8.x alguns menus são “Avançados” e somente aparecem se vc mandar que eles apareçam.

Nesta figura não aparece a opção “New Replica” e outras.

Image:Menus Notes 8
Para fazer com que apareça vá em View  e marque  Advanced Menus
Nesta figura aparece a opção “New Replica” e outras.

Image:Menus Notes 8

Consultei a KB da IBM e achei o TN 1256781 que mostra as mudanças de menus do Notes 8 em relação a outras versões, vivendo e aprendendo.

menu

Um recurso que muitas pessoas estão pedindo, principalmente depois de ver uma apresentação do Sametime, é a capacidade de ver as fotos das pessoas no chat ou em outras partes do produto.
As configurações variam de caso para caso, principalmente com a utilização de LDAP.
Para configurar as fotos e utilizando como diretório LDAP um servidor Domino o TechNote 1244204 resolve o problema. Neste TN tem um passo a passo para inserir a imagem utilizando uma ferramenta do tipo LDAP BROWSER, eu utilizei uma  Open Source muito boa chamada JXPlorer. Para colocar uma foto ou poucas é útil mas para colocar um lote de fotografias fica complicado. Achei o código abaixo que é um agente que coloca imagens no campo jpegPhoto uma a uma. Para fazer a carga de várias fotos o agente tem de ser modificado conforme o caso. O que simplificou meu agente foi a padronização dos arquivos de fotos com menos de 64Kb e os nomes formados pela matrícula + jpg e o shortName dos usuários ser justamente a matrícula.

:

Declare Function NEMGetFile Lib “nnotesws” ( wUnk As Integer, Byval FileName As String, Byval Filter As String, Byval Title As String ) As Integer

Const adTypeBinary = 1

Sub Initialize
                 Dim s As New NotesSession
                 Dim db As NotesDatabase
                 Dim col As NotesDocumentCollection
                 Dim doc As NotesDocument
                 Dim sPath As String
                 Set db = s.CurrentDatabase
                 Set col = db.UnprocessedDocuments
                 Set doc = col.GetFirstDocument
                 sPath = GetFile
                 Call doc.ReplaceItemValueCustomDataBytes(“jpegPhoto”,”jpegPhoto”,ReadByteArray(sPath))
                 Call doc.Save(True, False)
                 Set doc = Nothing
                 Set db = Nothing
                 Set col = Nothing
                 Set s = Nothing

End Sub
Function ReadByteArray(strFileName As String) As Variant
                 Dim bytes As Variant
                 Set bytes = CreateObject(“ADODB.Stream”)
                 bytes.Type = adTypeBinary
                 bytes.Open
                 bytes.LoadFromFile strFileName
                 ReadByteArray = bytes.Read

End Function

Public Function GetFile() As String
                 Dim strFileName As String*256
                 Dim strTitle As String
                 Dim strFilter As String
                 strFileName = “*.jpg”
                 strTitle = “Please select the jpg image to be imported”
                 strFilter = “JPEG Image|*.jpg”
                 Call NEMGetFile( 0, strFileName, strFilter, strTitle)
                 GetFile =  Trim(strFileName)
End Function

sametime

Começei a usar o Twitter. Já vi muita gente usando por ai e resolvi testar a ferramenta.
Já coloquei aqui no blog, na barra de ferramentas e também configurei um widget no Notes para facilitar os updates
Para quem quiser ver como é o widget para o Notes ele está aqui é gratuito.

Twitter