3 Settembre 2008, 07:25
Nel corso delle mie peregrinazioni sulle macchine dei vari clienti, mi è successo un fatto strano.
Il tentativo di aprire o di salvare i file word allegati automaticamente alle mail di una banca falliva con un messaggio simile a Impossibile salvare il documento. Verificare di avere i corretti permessi sulla cartella di destinazione.
La soluzione è descritta in questo post.
Il problema è dovuto al fatto che Outlook per aprire o salvare un file ne crea una copia in una cartella, identificata dalla chiave di registro
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Security\OutlookSecureTempFolder
che non viene mai svuotata. Quando arrivano più di cento mail contenenti un allegato che possiede sempre lo stesso nome (come in questo caso quello generato automaticamente dalla banca), Outlook non riesce più a salvare il file, generando il suddetto errore.
Una soluzione consiste nello svuotare la cartella temporanea, con un bat simile a questo:
del /q "%userprofile%\Impostazioni locali\Temporary Internet Files\OLKXXX\*.*"
dove occorre sostiuire OLKXXX con il valore presente nella citata voce di registro.
C'è anche un articolo della KB Microsoft al riguardo.
1 Settembre 2008, 10:51
Se l'ultility NETDIAG in Windows Server 2003 mostra il seguente messaggio "No DNS servers have the DNS records for this DC registered", il problema può essere risolto tramite il comando
netdiag /fix
Tramite questa opzione si verificherà che tutti i record SRV (servizi) siano registrati correttamente nel server DNS, cercando eventualmente di registrare quelli mancanti.
A tal proposito esiste un articolo della KB Microsoft.
29 Agosto 2008, 17:29
Quanto segue si riferisce a IBM DB2 per Linux Unix Windows (LUW)
1) La ricerca del gruppo dell’utente
Le impostazioni di default di DB2 inducono il database a ricercare il gruppo di appartenenza dell’utente sulla macchina sulla quale il profilo è stato definito. Pertanto il gruppo dei profili del dominio sarà verificato sul domain controller, mentre per i profili locali verranno ricercati i gruppi locali.
Per modificare questo comportamento è possibile utilizzare il comando:
db2set db2_grp_lookup=local
(Nota: per verificare la configurazione utilizzare il comando db2set)
2) Il gruppo degli amministratori
DB2 assegna il privilegio di amministratori a tutti gli utenti che appartengono al gruppo “Administrators” della macchina su cui il profilo è definito (o della macchina su cui risiede il DB2 se la variabile db2_grp_lookup è impostata a local).
Per modificare il nome del gruppo degli amministratori è sufficiente utilizzare la sequenza di comandi:
db2stop
db2 update dbm cfg using sysadm_group NOMEGRP
db2start
ATTENZIONE: i nomi dei gruppi devono essere di al massimo 8 caratteri
(Nota: per verificare la configurazione usare il comando get dbm cfg)
3) Come procedere
Creare un gruppo DB2USERS sulla macchina su cui gira il server DB2 ed aggiungervi gli utenti da abilitare
Se la macchina non è un controllore di dominio procedere con il comando al passo 1) (db2set db2_grp_lookup=local)
Procedere con i comandi al passo 2) (db2 update dbm cfg using sysadm_group DB2USERS)
28 Luglio 2008, 15:01
Sui computer con Office 2007 ed antivirus eTrust, il comando "Salva con nome" di un documento su una cartella di rete fallisce con il messaggio "Il percorso di rete non può essere trovato".
Per risolvere il problema occorre disabilitare la scansione real-time dei dischi di rete da parte di eTrust, come da figura.

In alternativa, aggiungere una chiave nel registro, creandola se non presente:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Csc\Parameters con parametro FormatDatabase (DWORD)
poi settare il valore di FormatDatabase a 1.
22 Luglio 2008, 17:31
Ho trovato un utile blog su Ubuntu, nel quale è possibile leggere diversi articoli interessanti relativi alla connessione ad AS400 da sistemi Linux. Ecco alcuni link:
16 Luglio 2008, 07:44
In un bellissimo articolo su IT Jungle ho trovato un interessante trucco. Il problema è quello di inserire i dati in una tabella, solo nel caso non esista già una chiave uguale, utilizzando un solo prepared statement. Ecco la soluzione
INSERT INTO myTable
(KEY, code, name)
SELECT Cast(? AS Int),
Cast(? AS VarChar(30)),
Cast(? AS Char(10))
FROM SYSIBM.SysDummy1
WHERE NOT EXISTS
(SELECT 1
FROM myTable
WHERE KEY=?)
con il relativo codice Java che ne fa uso:
Connection conn=DriverManager.getConnection("jdbc:as400://myas400;naming=sql","user","pwd");
String sql="Insert Into myLib.myTable (key, code, name) " +
"Select Cast(? As Int)," +
" Cast(? As VarChar(30))," +
" Cast(? As Char(10))" +
" From SysIBM.SysDummy1 " +
" Where Not Exists " +
" (Select * " +
" From myLib.myTable " +
" Where key=?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, 3); // Column 1
ps.setString(2, "Test It"); // Column 2
ps.setFloat(3,"Fun"); // Column 3
ps.setInt(4, 3); // Where Clause
ps.execute(); // Run the statement
ps.close();
conn.close();
9 Luglio 2008, 17:02
Una delle ragioni della lentezza nell'apertura dei file di word può essere data dal mancato reperimento del modello associato al documento, in modo particolare quando questo è un modello di gruppo. Si veda ad esempio questo articolo.
Se il modello non è raggiungibile, ad esempio perché il server su cui risiedeva è stato rinominato oppure perché il file è stato spedito ad un utente esterno all'azienda, microsoft Word attende a lungo prima di aprire il documento.
Per ovviare a questo problema occorre sganciare il documento dal suo modello. A tale scopo è possibile utilizzare questa semplice macro:
Sub PulisciModello()
WordBasic.FileTemplates Template:="", LinkStyles:=1
WordBasic.FileSaveAs Name:=WordBasic.[FileName$](), Format:=1
End Sub
Per vedere il nome del modello associato al documento, si utilizzi il menù File - Proprietà, verificando l'informazione in fondo alla linguetta Riepilogo
1 Luglio 2008, 17:30
Per verificare la quantità di memoria RAM installata su AS400, andare al menù HARDWARE con il comando
GO HARDWARE
quindi utilizzare la chiave
4. Gestione delle risorse del processore
Il che equivale al comando
WRKHDWRSC *PRC
La RAM è rappresentata dalle ultime righe, simili a
MS01 30D2 Operativo Scheda memoria princi
MS02 30D2 Operativo Scheda memoria princi
MS03 30D2 Operativo Scheda memoria princi
MS04 30D2 Operativo Scheda memoria princi
L'opzione 7 a fianco di ogni riga mostra la dimensione del modulo di memoria installato.
3 Giugno 2008, 15:49
Una dei piccoli ma significativi miglioramenti del rilascio V6R1 di OS400 (IBM i), è la possibilità di creare indici non solo su campi di database, ma anche sul risultato di operazioni. Tali indici possono essere sfruttati sia dal motore di ottimizzazione (in particolare dal nuovo SQE, ma in parte anche da CQE) per migliorere le prestazioni delle query.
Vediamo acluni esempi.
CREATE INDEX TOT_TEMPI ON Lavorazioni (TLavoro + TAttrezzaggio)
CREATE INDEX NomeCogn ON Dipendenti (CONCAT(CONCAT(Nome,’ ‘), Cognome))
Il vantaggio maggiore si può però ottenere nel rendere le ricerche case-insensitive:
SELECT * FROM Articoli
WHERE UPPER(Descrizione) = ‘TAVOLO’
CREATE INDEX DescrUpp ON Articoli(UPPER(Descrizione))