Handoff-urile sunt stare de lucru, nu documentatie - regula exista deja
pentru .md, o adaug si pentru .sql (docs/handoff_vadeco-drepturi.sql).
Restul diferentei e normalizarea CRLF -> LF pe primele 17 randuri, ceruta
oricum de core.autocrlf=true. Era o modificare necomisa dinaintea acestei
sesiuni; o inchid separat, ca sa nu polueze commit-ul urmator.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X9Sa54oFKpE2XhD6A7NTch
ViewPower nu putea dialoga cu acest UPS: 5777 de "QPI return(NAK" si zero
citiri reusite in fereastra 6-10 august, pentru ca UPS-ul vorbeste HID Power
Device standard, nu dialectul text Voltronic. Serviciile au fost dezactivate
pe 10.08.2026 la 22:34, lasand serverul fara nicio alertare 17 zile. Nici
inainte nu exista: emailReceivers = 0, iar excuteProgram era gol, deci Oracle
nu era oprit curat oricum.
UPS-ul comunica insa perfect cu Windows pe canalul HID - dovedit de perechile
de evenimente Kernel-Power 105 la panele reale din 2026.
Monitorul nou citeste GetSystemPowerStatus, acelasi semnal pe care il foloseste
Windows pentru propria actiune la baterie critica. Alerteaza pe email la
trecerea pe baterie, la revenirea curentului si cand UPS-ul nu mai comunica -
cazul care a trecut neobservat. Opreste curat listenerul, apoi instanta cu
shutdown immediate, apoi Windows-ul, inaintea pragului brutal de 20% al
Windows-ului.
Ruleaza ca task programat sub SYSTEM, cu AllowStartIfOnBatteries si
DontStopIfGoingOnBatteries - fara ele Windows ar fi oprit taskul exact cand
serverul trece pe baterie.
Validat pe 27.08.2026: citire, email, secventa de oprire in dry-run si
pierderea comunicatiei (alerta la exact 8 cicluri, apoi revenire). Pragurile
de 10 min / 35% sunt conservatoare, nu masurate - testul de autonomie reala
ramane de facut.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
cluster-shutdown.sh / cluster-startup.sh — automatizeaza procedura din
docs/oprire-planificata-cluster.md. Ruleaza de pe statia de admin prin SSH,
nu de pe un nod: nodul care se opreste ultimul nu poate raporta rezultatul,
iar la pornire scriptul trebuie sa astepte nodurile din afara.
Decizii importante:
- guest-urile din HA se opresc/pornesc cu `ha-manager set --state`, NU cu
pct/qm shutdown; din CLI acestea nu actualizeaza state-ul HA si CRM-ul
poate reporni guest-ul in mijlocul opririi
- apartenenta la HA se descopera dinamic din `ha-manager config`
- ordinea de oprire e pe dependente: consumatorii intai, CT 108 Oracle
ultimul, cu `shutdown immediate` in baza inainte de a opri containerul
- shutdown-ul salveaza local ce rula; startup-ul porneste exact atat, ca sa
nu reporneasca VM-uri oprite intentionat
- NEVER_AUTOSTART (109, 301, 310) protejeaza fallback-ul fara fisier de
stare: VM 109 e DR-ul a carui pornire nedorita a declansat incidentul
2026-04-20, restul sunt template-uri
- garda impotriva rularii de pe un nod sau din CT 171 (s-ar sinucide)
- ping_host() portabil Git Bash / Linux
Corectat in runbook: ordinea de oprire spunea "Oracle primul", gresit ca
ordine de dependente — VM 201 si CT 104 consuma baza.
Ambele testate cu --dry-run pe clusterul live.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
Gasite la instalarea de productie VADECO (Oracle 21c XE, Windows Server 2019).
1. Pe serverul VADECO procesul Oracle nu poate atinge nicio cale de pe C:,
nici macar C:\Windows\Temp, desi ACL-urile sunt corecte si serviciul ruleaza
ca NT SERVICE\OracleServiceXE. D: merge cu exact acelasi grant. Calea DMP
era insa hardcodata "C:\DMPDIR" in 01, 02, 05, 06 si in biblioteca, deci
instalarea nu se putea muta. Acum e parametrul -DmpDir, expus ca /dmpdest:
in FAZA1.cmd si FAZA2.cmd si transmis tuturor pasilor.
Cel mai perfid era pasul 02: recrea DIRECTORY DMPDIR pe 'C:\DMPDIR' peste
valoarea pusa de 01. Chiar cu restul instalarii mutata, SYS.NEWSCHEMA ar fi
cautat FIRMANOUA.dmp in alta parte, iar adaugarea unei firme noi ar fi picat
peste luni, fara legatura vizibila cu instalarea.
2. New-OracleDirectory compara doar siruri de caractere: verifica ce scrie in
dba_directories, nu daca baza chiar poate scrie acolo. Acum face un
UTL_FILE round-trip si esueaza pe loc, cu explicatia cauzei. Inainte,
directorul inutilizabil trecea drept bun si importul cadea abia in impdp cu
ORA-29283, la zeci de linii distanta. Valoarea de retur nici nu era
verificata in 01/03/06 - de aici si "True" ratacit in log.
3. Instalarea ROAClient seteaza TNS_ADMIN de masina spre instantclient-ul ei.
Serviciul Oracle mosteneste variabilele de masina, deci citea sqlnet.ora de
acolo - unde nu exista niciunul - si nu din Oracle Home, unde il scria pasul
01. Compatibilitatea pentru clienti vechi nu se aplica, iar statiile ar fi
primit ORA-28040 cu fisierul scris corect, in locul gresit. Pasul 01 scrie
acum sqlnet.ora si in TNS_ADMIN cand difera.
4. Pasul 05 lega schemele de DMP-uri cu "^$schema[_\.]", deci schema DANUBE
putea primi DANUBE_20200914.dmp - datele altei firme, fara avertisment.
Numele exact are acum intaietate, prefixul se accepta doar daca e unic, iar
ambiguitatea se raporteaza.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SzF1hf4aFS1tmJWpPMiwGp
PowerShell scripts for setting up Oracle 21c/XE with ROA application:
- Automated tablespace, user creation and imports
- sqlnet.ora config for Instant Client 11g/ODBC compatibility
- Oracle 21c read-only Home path handling (homes/OraDB21Home1)
- Listener restart + 10G password verifier for legacy auth
- Tested on VM 302 with CONTAFIN_ORACLE schema import
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>