My Memory Dump

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 24 juillet 2016

Amis visiteur bonjour

Ce blog est dédié à l'archivage d'informations techniques en tout genre. Il constitue ma base de connaissance personnelle. Si toutefois, il vous permettait de trouver des renseignements utiles et bien tant mieux !

Raspberry Pi streaming video faible latence

Voici la meilleurs solution que j'ai pu tester pour transmettre le flux vidéo de la camera du Raspberry pi vers une machine Windows avec un minimum de latence.

http://blog.mymemorydump.info/pages/Streaming-vid%C3%A9o-faible-latence

Fonctionne également en Wifi, testé avec deux clé USB TP-LINK TL-WN722N.Voir config du Pi en point d'accès.

http://blog.mymemorydump.info/pages/Config-Raspberry-pi-en-point-d-acc%C3%A8s-wifi

vendredi 4 septembre 2015

Windows 10 - Un petit instant

J'ai installé Windows 10 FR Pro RTM dans une VM Hyperv à l'aide de l'image iso. Après le premier redémarrage, l'installation est restée bloquée sur "Un petit instant"

Un petit instant

J'ai attendu plusieurs heures, pareil.

Après recherche, la solution consiste à débrancher toute connexion réseau / Wifi / Bluetooth et à redémarrer, même pendant la présence du message.

J'ai refait l'installation, durée : 10 min pour atteindre l'écran de connexion (ah ! j'aime mieux ça). C'est magique Windows 10 ...

mardi 14 juillet 2015

Echec d'envoie des abonnements SSRS

Symptôme : Certains utilisateurs s'abonnent à un rapport SSRS, ils choisissent le mode d'envoi par mail, ils définissent une planification et ils cochent la case "Inclure un rapport" pour recevoir le rapport dans le corps du mail (au format html ou autre). Lorsque l'heure d'exécution arrive, certains utilisateurs ne reçoivent pas le mail. Au niveau de l'abonnement, la colonne état indique :

Échec de l'envoi du message électronique : Le serveur de rapports a rencontré une erreur de configuration. Le message ne sera pas renvoyé.

Si on vérifie les logs dans "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles" l'erreur suivante apparait au moment de l'exécution de l'abonnement :

AuthzInitializeContextFromSid: Win32 error: 1355

Diagnostique : Lors de la génération du rapport à inclure dans le mail, SSRS doit vérifier que le propriétaire de l'abonnement a bien le droit de consulter le rapport. Pour cela, l'authentification Kerberos est utilisée. En faisant des captures de trame dans le cas ou cela échoue, la requête TGS-REQ reçoit la réponse KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN. Dans le cas ou l'abonnement fonctionne, on voit que le serveur contacte le contrôleur de domaine de l'utilisateur propriétaire de l'abonnement. Voilà pourquoi cela fonctionne pour certains et pas pour d'autres. Les utilisateurs pour lesquels l'abonnement fonctionnent font parti du même domaine que le serveur. Pour les autres, et bien le serveur n'est pas en mesure de communiquer avec les contrôleurs de domaine.

Solution : La solution logique consiste à permettre la communication entre le serveur SSRS et les contrôleurs de domaine des domaines des utilisateurs et peut-être de définir un SPN (service principal name) vu le message d'erreur dans la capture de trame. Mais je n'ai pas testé cette solution.
Le serveur SSRS était externalisé et la communication avec le contrôleur de domaine de son domaine établie via un VPN qu'on ne souhaitait pas faire évoluer. Dés lors la solution a été de mettre à jour le propriétaire des abonnements avec un compte appartenant au domaine avec lequel le serveur était capable de communiquer. Pour cela il suffit de faire un update dans la table "Subscriptions" en remplaçant le "OwnerID". "OwnerID" que l'on trouve dans la table "Users". Planifier cet update une fois par jour via un script et une tâche planifiée.

vendredi 3 juillet 2015

Batterie externe pour pas cher

Comment se fabriquer une batterie externe pour 3 € en utilisant une batterie de portable HS.

jeudi 4 juin 2015

Lync 2013 web conférences, ajout automatique ?SL=1

Pour utiliser Lync 2013 en mode Web Conférence, il suffit d'envoyer l'URL de la réunion à ses interlocuteurs.

Si ceux-ci utilisent Internet Explorer comme navigateur par défaut et qu'il ont Office 2013 installé sur leur poste, le navigateur s'ouvre et démarre le client Lync 2013 (Skype for business désormais). Ce n'est pas ce que l'on veux. Il s'agit d'une web conférence, on souhaite n'utiliser que le navigateur. Il faut que le processus soit simple et fluide.

La solution fourni par Microsoft consiste à ajouter le paramètre '?sl=1' à la fin de l'URL d'accès à la réunion.

Comment faire cette modification de manière permanente et définitive ?

La solution consiste à utiliser le module de ré-écriture d'URL de IIS, celui-ci est déjà présent sur le serveur Lync.

- Se connecter au serveur Lync et lancer la console de gestion de IIS.
- Se placer sur le site "Lync Server External Web Site" et double cliquer sur l'icône "URL Rewrite"
- Créer une nouvelle règle entrante (inbound rule) avec les paramètres suivants :

Lync 2013 rewrite rule

- Placer la règle en deuxième position dans la liste, juste en dessous de "Règle de redirection HTTPS".

Remarque : Je n'est créé cette règle que dans le site web externe. En interne, nos utilisateurs ne font pas de web conférence, ils utilisent le client Lync.

samedi 2 mai 2015

Windows 8.1 - IE11- proxy auto détection

L'utilisation de l'auto détection de proxy sur les stations de travail est discutable (voir cet article). Quoiqu'il en soit nous l'utilisons. Après avoir migré de Windows 7 + IE9 à Windows 8.1 + IE11, le problème suivant est apparu.

Symptôme : Au premier lancement d'internet explorer 11, la page de démarrage (notre intranet) mettait 10 à 15s pour s'afficher. Pendant ce temps le navigateur affichait une page blanche et semblait inactif. Ce problème ne se produisait plus lors des lancements suivants mais pouvait réapparaitre dans la journée.

Rappel : L'auto discover du proxy fonctionne en recherchant l'enregistrement DNS wpad.mondomaine.com puis le navigateur accède à la page http://wpad.mondomaine.com/wpad.dat. Le fichier wpad.dat contient au minimum le nom du proxy mais il peut aussi être personnalisé pour traiter des exceptions, par exemple ne pas utiliser le proxy pour les adresses internes.

Cause n°1 : En faisant une capture de trames réseau sur une station de travail avec wireshark, j'ai constaté que la machine effectue des diffusions via le protocol LLMNR (Link-Local Multicast Name Resolution). Il s'agit d'un mode de résolution de nom par diffusion qui n'est utile qu'en absence de serveur DNS. Non seulement ces diffusions sont inutiles mais elles prennent du temps.

Cause n°2 : Après avoir désactivé le protocole LLMNR, la capture de trames montre des diffusions NETBIOS. Ces diffusions sont également inutiles.

Solution : Désactiver LLMNR et NETBIOS sur les stations de travail. Pour cela, créer une GPO ordinateur pour effectuer les actions suivantes :
- Créer la clé de registre suivante pour désactiver LLMNR :
REG ADD "HKLM\Software\policies\Microsoft\Windows NT\DNSClient\" /f
REG ADD "HKLM\Software\policies\Microsoft\Windows NT\DNSClient" /v "EnableMulticast" /t REG_DWORD /d "0" /f

- Exécuter le script de Mark Harris au démarrage pour désactiver NETBIOS over TCP/IP

' Disable NetBIOS over TCPIP
' Author: Mark Harris
' disablenetbios.vbs
' run as cscript /nologo disablenetbios.vbs

strComputer = "."
' set to HKEY_LOCAL_MACHINE registry Hive
HKLM = 2147483650

' Set keyword value to open
valuename = "NetBIOSOptions"
subkey = "System\CurrentControlSet\Services\NetBT\Parameters\Interfaces\"

'Get registry provider from WMI
set registry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

'Get subkeys of Interfaces key … these will be random GUIDs
registry.EnumKey HKLM, subkey, subkeys

for i = 0 to ubound(subkeys)
'Set hex value of registry value to 0x2. We have to use the built-in VBscript hex function to convert from decimal to hex data type
registry.SetDWORDValue HKLM, subkey & subkeys(i), valuename, hex(2)
next

samedi 18 avril 2015

Bonne santé intellectuelle

Pour se prémunir (au moins un peu) des raisonnements faux auxquels nous exposent les médias et le marketing, pour éviter de se faire manipuler en général, je vous conseil de consulter le site du CORTECS
Particulièrement les mini conférences que j'ai trouvé vraiment très intéressantes.

vendredi 3 avril 2015

PXE-E53: No Boot filename received

Symptôme : Erreur reçue par un modèle de machines sur le réseau lors d'un démarrage en mode PXE pour déploiement d'image WDS. Aucun problème sur les autres modèles.

PXE-E53: No Boot filename received
PXE-M0F: Exiting intel PXE rom

Cette erreur indique que le client PXE n'a pas reçu de réponse du serveur WDS concernant le nom du fichier de boot a télécharger/exécuter.

Contexte : Serveur DHCP Windows 2008 R2 et Serveur WDS 2012 R2. Serveurs distincts donc pas besoin de configurer d'options DHCP particulières. Toutes les machines sont dans le même VLAN.

Cette erreur est bien référencée par Google avec différents points à vérifier (voir les liens plus bas) mais dans mon cas cela ne m'a pas aidé. J'ai fait deux captures de trames réseau avec Wireshark, l'une en cas de succès et l'autre en cas d'échec (filtrer sur le protocole "bootp"). Captures effectuées sur le serveur WDS lui-même. Dans les deux cas la communication avec le serveur DHCP se passe bien :
- Client : DHCP Discover
- Serveur : DHCP offer
- Client : DHCP request
- Serveur : DHCP Ack
puis le serveur WDS prend la suite :
- Serveur WDS : DHCP offer
- Client : DHCP request
- Serveur WDS : DHCP ack
Le client peut alors télécharger le fichier de boot.

Dans le cas d'échec, je constate que le serveur WDS ne répond pas au DHCP request envoyé par le client.

Solution de contournement 1 : Après avoir fait différents tests, je constate que ce problème ne se produit que si la version de l'intel boot agent présent sur le poste client est en version 1.5.x ou supérieur. Si je downgrade le BIOS de la machine (BIOS et boot agent marchent ensembles), je repasse le boot agent en version 1.4.x et je n'ai plus de problème.

Solution de contournement 2 : Si je reconfigure mon serveur WDS en choisissant le mode "Standalone" au lieu de "intégré à active directory" au début de l'assistant de configuration, le problème disparait.

WDS

Solution définitive : L'ouverture d'un ticket au support Microsoft a abouti à la solution de contournement 2, ne pas utiliser le mode "intégré à active directory". Microsoft considère que le problème vient de l'agent de boot PXE et que c'est aux constructeurs de se rendre compatible.

Liens utiles :
http://www.symantec.com/business/support/index?page=content&id=TECH10532
http://blogs.technet.com/b/configurationmgr/archive/2011/01/05/troubleshooting-the-pxe-service-point-and-wds-in-configuration-manager-2007.aspx

samedi 14 février 2015

Suivez cette avion !

Le site www.flightradar24.com en agrégent différentes sources de données radar permet de suivre les avions de ligne en temps réel.

Flight radar

dimanche 25 janvier 2015

WDS : erreur 0xC0000001

Symtôme : Au démarrage d'une image de boot WDS (de capture ou de déploiement) l'erreur suivante apparait :

Status: 0xc0000001
Info: A required device isn't connected or can't be accessed.

Cause générale : Problème réseau avec le protocole TFTP qui télécharge l'image de boot du serveur WDS vers l'espace RAMDisk du poste client.

Cause particulière : Pour préparer mes images WDS, j'utilise une machine virtuelle hyper-v, cela permet de prendre un cliché avant d’effectuer le sysprep pour revenir en arrière en cas de problème. Le serveur WDS (2012 R2) est également virtualisé.
Après le sysprep, Je lance la capture en utilisant l'image de capture WDS et le boot PXE dans la vm. L'erreur apparait pendant le téléchargement de l'image de capture.
Ce problème n'est pas systématique, parfois il suffit de recommencer pour que ça fonctionne.
Le problème ne se produit pas avec les machines physiques.

Après recherche, il se trouve que le protocole TFTP ne supporte pas bien le Teaming de carte réseau, Teaming de carte qui est configuré au niveau du serveur Hyper-v.
https://social.technet.microsoft.com/Forums/en-US/1cffa232-1b0f-48c3-bbfd-b452858ca973/problems-with-pxe-boot-on-hyperv-guests?forum=configmanagerosd

Solution 1 : Connecter la machine virtuelle à une carte réseau indépendante du Team du serveur hyper-v.

Solution 2 : Générer du trafic réseau entre le serveur WDS et un autre serveur, par exemple en exportant une image WDS depuis la console. Il suffit que ce trafic réseau soit important pendant la phase de téléchargement de l'image de boot. Ensuite, dés qu'elle démarre vous pouvez arrêter l'export en cliquant sur annuler.

Solution 3 : Booter la vm avec le disque d'installation de Windows, puis, arrivé au premier écran en mode graphique, taper MAJ+F10 pour lancer une console. Utiliser GImageX pour effectuer la capture. Cela suppose au préalable d'avoir placé cet outil sur la partition prévue pour le stockage de l'image. Une fois la capture finie, redémarrer la VM, la laisser la se respécialiser (suite au sysprep) puis télécharger l'image vers le serveur WDS.

samedi 24 janvier 2015

Click droit : Menu contextuel inactif

Symptôme : Sous Windows 8.1, le menu clic-droit "Exécuter en tant qu'administrateur" ne fonctionne plus pour lancer "cmd" (entre autre), c'est-à-dire que rien ne se passe après le clic. Autre cas, le raccourci clavier Win + X (clic-droit sur le bouton démarrer) affiche le menu attendu mais une partie des sous menus est inerte, rien ne se passe lorsqu'on clique dessus. Le problème est apparu subitement.

Cause : Un programme a ajouté une extension invalide au Shell.

Solution : Pour identifier la ou les extensions responsables de ce dysfonctionnement, utiliser ShellExtView. Ce programme affiche la liste des extensions configurées, Il suffit de trier par date et de désactiver, une par une, les extensions modifiées récemment. Dans mon cas, le problème venait de "Compare it", outil de comparaison de fichier qui ajoute une extension au clic-droit sur les fichiers dans l'explorateur. Après désactivation, tout refonctionne comme avant.

mardi 16 décembre 2014

Commandes SQL Server utiles


-- Espace disque disponible sur le serveur SQL :


EXEC xp_fixeddrives
GO


-- Exécuter une commande système sur le serveur SQL Server, à distance, via Management Studio :


EXEC sp_configure 'show advanced options', 1
GO

RECONFIGURE
GO

EXEC sp_configure 'xp_cmdshell', 1
GO

RECONFIGURE
GO

-- Espace disque total et disponible du serveur
EXEC master.dbo.xp_cmdshell 'wmic logicaldisk get size,freespace,caption'
GO


-- Forcer un changement de fichier log sans redémarrer :


EXEC sp_cycle_errorlog
GO

dimanche 23 novembre 2014

Performance Oracle, Optimiseur et CPU

Dans mon billet sur le paramètre "session_cached_cursor" (voir plus bas) je parlais de problèmes de temps de réponse Oracle liés au temps mis par l'optimiseur pour calculer le plan d'exécution des requêtes. Phénomène aggravé par le fait que l'application concernée utilisait des littéraux au lieu de variable "bind" donnant encore plus de travail à l'optimiseur.

Mon serveur Oracle est virtualisé et l'ajout de vCPU ne m'avait pas permis d'améliorer les choses. De toute façon les lenteurs de l'optimiseur étaient ressenties même avec un seul utilisateur connecté. Je ne suis pas sûr, mais je pense que l'optimiseur travail par "thread", un thread par session par exemple et je pense qu'un thread ne peut exploiter qu'un cœur de processeur. Donc l'ajout de vCPU ne change rien.

Suite à mon billet sur la compilation Visual Studio 2010 et l'intérêt de disposer de processeur avec "mode turbo" (voir plus bas) j'ai déplacé mon serveur Oracle sur un Hyper-v disposant de tels processeurs.

Bilan : Nette amélioration des temps de réponse Oracle et pourtant je ne suis passé que de 2.4 GHz à 2,8 GHz en mode turbo. J'attends avec impatience l'achat du prochain serveur Hyper-v pour lequel la fréquence CPU et le mode turbo seront privilégiés.

dimanche 9 novembre 2014

zen photon garden

Faire de la photo abstraite sans appareil photo :

photon garden

dimanche 19 octobre 2014

Visual Studio 2010, virtualisation Hyper-v et temps de compilation.

Je ne suis pas développeur (non, non). Je m'occupe de virtualisation.

Il y a peu on m'a demandé d'expliquer pourquoi une machine virtuelle Windows 7 avec Visual studio 2010 mettait presque trois fois plus de temps pour compiler un projet (vb.net) qu'une machine physique dans les mêmes conditions (même OS, mêmes applications et même projet à compiler). Les deux machines disposaient de 4 Coeurs et 8 Go de RAM. Sur l'hyperviseur, les machines virtuelles avaient toutes les mêmes paramètres en terme de priorité d'allocation de ressources. La charge moyenne des CPU de l'hyperviseur était de 15% (à l'aise quoi).

J'ai fait différents tests chronométrés, je vous passe les détails.

Première constatation : L'antivirus (OfficeScan de Trend Micro) augmente le temps de compilation d'environ 20%. Cela n'explique rien mais c'est un phénomène aggravant (plus c'est lent et plus c'est lent).
-> Création d'une exception afin que le scan en temps réel ne traite pas le dossier dans lequel les fichiers compilés sont générés.

Deuxième constatation : Après avoir changé la machine virtuelle d'hyperviseur (pour des questions de place), les temps de compilation ce sont nettement améliorés. J'ai pensé que la charge globale de l'hyperviseur était en cause, j'ai donc refait ma comparaison en arrêtant toutes les autres machines virtuelles. Même résultat.
- d'un coté un hyperviseur avec deux processeurs Xéon E5-2609 (2.4 Ghz acheté en 2012)
- de l'autre un hyperviseur avec deux processeurs Xéon E5630 (2.53 Ghz acheté en 2010)
Celui de 2010 donnant les meilleurs résultats.

En vérifiant les spec, je me suis aperçu que le Xéon E5-2609 n'avait pas de mode turbo, la fréquence indiquée est donc sa fréquence max contrairement au E5630 qui peut monter à 2.8 Ghz temporairement.

En revenant au comparatif initial, avec la machine physique, celle ci était équipée d'un processeur Core i5 3.3 Ghz avec un mode turbo à 3.7 Ghz. Donc d'un coté nous avions une VM avec 4 coeurs à 2.4 Ghz max et de l'autre une station de travail avec 4 coeurs à 3.7 Ghz max. Tout s'explique. A noter que le fait de passer à 8 coeurs sur la VM n'a rien changé, c'est donc bien de la puissance pure que l'on a besoin pour la compilation.

Conclusion : Plus la fréquence est haute et plus ça va vite (on s'en serait douté mais pas forcément à ce point) et surtout vérifier la fréquence max du mode turbo avant d'acheter votre prochain serveur Hyper-v (même si la charge moyenne de l’existant est faible).

lundi 28 juillet 2014

Bateau pop pop

Je me suis essayé à la fabrication d'un bateau "pop pop". J'ai suivi ce tuto (y en a plein) mais ce n'est pas si facile.

Mon problème : le bateau pop environ 30 secondes puis s'arrête.

En faisant des tests, j'ai constaté qu'il vibrait très légèrement mais pas suffisamment pour faire le bruit. J'ai constaté, un peu par hasard, que ça chauffait trop fort. Pour vérifier il suffit de retirer la flamme, en principe le bateau recommence à "poper" grâce à la chaleur emmagasinée par la cuve en métal. Ensuite, il s'arrête à nouveau par manque de chaleur.

Petite vidéo pour illustrer.

capture poppop video

Comment ça marche :

pop pop

1- La chaleur transforme une partie de l'eau en vapeur.

2- La pression monte et repousse l'eau qui est dans les tubes, le bateau avance.

3- La vapeur d'eau qui est allé dans la parti froide du tube se condense et la pression chute.

4- L'eau est aspirée vers la partie chaude, le bateau recule, ou en tout cas il ralenti.

5- Retour au 1- et ça recommence.

Remarques :

- Le bruit "pop pop" vient de la fine taule qui se déforme à cause des variations de pression. cette déformation ne participe pas à l'efficacité du moteur. Il est possible de faire un bateau silencieux qui avance très bien.

- Le nombre de tubes importe peu, ce qui compte c'est la section permettant à l'eau de se déplacer par rapport au volume de vapeur généré à chaque cycle.

- On met généralement, au moins deux tubes pour facilité le remplissage en eau, sinon c'est galère.

- Je n'ai pas compris pourquoi le bateau avance, il devrait faire du surplace, il faut croire que le travail produite par l'éjection d'eau est supérieur au travail produit pour l'aspirer.

- Si les tubes sont trop court, la vapeur d'eau va sortir et la phase de condensation n'aura pas lieu, le moteur de fonctionnera pas.

samedi 12 juillet 2014

sessions_cached_cursor

Cela faisait quelque temps que je cherchais à améliorer les temps de réponse d'une application connectée à une base Oracle 11g R2.

L'advisor d'Oracle Enterprise Manager indiquait que l'application utilisait des littéraux dans ses requêtes et que l'usage de variables "bind" à la place de ces littéraux aurait pu diminuer la consommation de CPU et le temps d'exécution des requêtes. Seulement je n'avait pas accès au code de l'application en question et donc je ne pouvais rien y changer.

Pourquoi les variables bind permettent de gagner du temps ?

Parce qu'Oracle considère qu'une requête qui lui est soumise deux fois de suite avec des valeurs (littéraux) différentes revient à deux requêtes différentes. Il va donc passer du temps d'analyse (parsing) sur la deuxième, pour déterminer le plan d'exécution, alors qu'il a déjà fait le travail pour la première. De plus il va stocker en mémoire deux plans d'exécution très probablement identiques.
Avec des variables bind, la requête ne serait analysée qu'une fois et il n'y aurait qu'un seul plan d'exécution.

J'ai tenté d'utiliser le paramètre cursor_sharing en lui donnant la valeur "force", cela permet justement de forcer le remplacement des littéraux par des variables, malheureusement cela a provoqué des erreurs dans l'application et j'ai du revenir en arrière (cursor_sharing=exact).

Je pensais être bloqué jusqu'à ce qu'on me parle du paramètre "sessions_cached_cursor". Ce paramètre indique combien de requête Oracle conserve en mémoire par session. Les informations conservées en mémoire sont le texte de la requête et le plan d'exécution, cela ne concerne pas les données. Son augmentation (valeur par défaut 50, passé à 1000) à nettement améliorer les temps de réponse de l'application. Je n'ai pas noté d'augmentation significative de la consommation de sga ou de pga.

Remarque : Cette modification n'améliore les temps d’exécution des requêtes qu'à partir de la quatrième exécution, au lancement, l'application reste donc lente puis au fur et à mesure de l'utilisation, les temps s'améliorent. Donc c'est valable pour une application utilisée toute la journée. Pour une utilisation ponctuelle de quelques minutes cela risque d'être inutile.

Pour effectuer la modification :

alter system set sessions_cached_cursor=1000 scope=spfile;

Puis redémarrage de l'instance.

vendredi 27 juin 2014

Perte de connexion wifi

Suite à la mise en place du relevé "téléinfo", j'ai placé mon "Pi" à coté du compteur EDF, connecté en wifi à ma box. Après quelques secondes voir une minutes, la connexion wifi était perdue. Obligé de redémarrer pour rétablir la connexion et rebelote. Tout le reste continuait de bien fonctionner (MySQL, apache et les relevés téléinfo).

Connecté en filaire, j'ai donc vérifié le principal log : /var/log/messages et j'y ai trouvé la ligne suivante :

ERROR::dwc_otg_hcd_urb_enqueue:505: Not connected

Après recherche et en analysant les changements fait juste avant apparition du problème, j'en ai déduit qu'il venait de la rallonge USB placée entre l'alimentation et le "Pi". Depuis sont remplacement par une plus courte, plus de problème. En tout, le câble d'alimentation fait maintenant 2 m au lieu de 2,40 m. Je n'ai pas essayé de comparer la résistance des câbles.

Suite, quelques jours plus tard :

De nouveau des pertes de connexion, mais moins fréquentes, j'ai donc supprimé la rallonge pour revenir à un câble d'1 m entre l'alimentation et le "Pi". D'autre part, pour que le "Pi" se reconnecte en cas de perte de connexion avec la box (par exemple lorsque je la reboot pour modifier un paramètre) j'ai ajouté le script suivant déclenché toutes les 5 min dans le "cron" :

#!/bin/bash

TESTIP=<IP PRIVEE DE LA BOX>

ping -c4 ${TESTIP} > /dev/null

if [ $? != 0]
then
logger -t $0 "WiFi seems down, restarting"
ifdown --force wlan0
ifup wlan0
else
logger -t $0 "WiFi seems up."
fi

Désolé pour l'auteur, je n'ai pas retrouvé l'URL.

Cela fait une semaine que ça tourne et plus aucun problèmes.

jeudi 26 juin 2014

ORA-39083

Lorsqu'on importe, via impdp, deux fois le même schéma dans la même instance Oracle (par exemple pour avoir un schéma de test et un de prod), on peut être confronté à cette erreur :

ORA-39083: Echec de la création du type d'objet TYPE:"MONSCHEMA"."T_VARCHAR2_TAB" avec erreur :
ORA-02304: constante d'identificateur d'objet non valide
SQL en échec :
CREATE EDITIONABLE TYPE "MONSCHEMA"."T_VARCHAR2_TAB" OID 'FCAF535E494D5154E043110114AC9DC7' AS TABLE OF VARCHAR2(4000);

Impdp tente de recréer le même OID et il échoue. Cela entraine généralement des erreurs de compilation et l'import ce termine avec des avertissements.

Solution : ajouter le paramètre transform=OID:n à la fin de la commande d'import. Cela permet à oracle de générer un nouvel OID. Valable à partir de la version 10g (comme l'import datapump).

- page 1 de 2