domenica 12 febbraio 2012

jsf2: stringhe vuote convertite in zero.. automaticamente

Nelle ultime versioni di jsf c'è una nuova future voluta (che non mi piace affatto!!) che consente di gestire la conversione automatica tra valori vuoti e 0..
faccio un esempio: quando avete un array di select items capita di spesso di inserire un valore vuoto con label "seleziona" - il valore vuoto serve per non far scattare il filtro nel meccanismo di ricerca.
Se invece il vuoto viene convertito in 0, a quel punto il meccanismo di ricerca lo utilizza...


per ulteriori informazioni a riguardo:


Una possibile soluzione in jboss è di aggiungere nel file jboss7/bin/standalone.conf  questo parametro:
-Dorg.apache.el.parser.COERCE_TO_ZERO=false

Nel file web.xml aggiungete invece:
<context-param>
        <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
        <param-value>true</param-value>
</context-param>


funziona...peccato che su openshift non si possano aggiungere variabili d'ambiente custom!!!

openshift: OPENSHIFT_DATA_DIR come usarlo per file RESISTENTI AI PUSH

Indagare meglio su come usare il nostro spazio:
"For persistent data (also in env var OPENSHIFT_DATA_DIR)"


Ho provato ad usarlo, creando un link simbolico tra:
ln -s ~/appname/data ~/appname/jbossas-7.0/standalone/deployments/ROOT.war/data




MA NON FUNZIA!!




link utile:
https://www.redhat.com/openshift/community/forums/express/few-questions-to-learn-more-about-express

openshift: aggiungere alias

Se registrate un dominio per pochi euro (dominio+dns+posta = 10/20 euro).
Create presso il vs DNS una CNAME del tipo: test.dominio.it. [NOTATE IL PUNTO!] 

che ridirge verso 

appname-domainname.rhcloud.com

Comunicate ad openshift questo CNAME, tramite il comando rhc-ctl-app:
rhc-ctl-app -a appname -c add-alias --alias appname.domainname.it -l account@gmail.com

E voilà la vs applicazione è raggiungibile a tutto il mondo!

ricordatevi ogni tanto di verificare che il jboss sia ancora attivo (openshift è ancora in beta...ogni tanto va tutto giù senza preavviso)!!!!


openshift: usiamo il cron per riavviare jboss di notte!

Date le poche risorse a disposizione, potrebbe essere utile riavviare jboss tutte le notti alle 3:00 (..si lo so che una buon applicazione non ne dovrebbe aver bisogno...):

  1) abilitiamo il cron alla ns applicazione
rhc-ctl-app -a giavacms -e add-cron-1.4

  2) creaiamo cartelle e script per usare i cron su openshift
mkdir -p .openshift/cron/hourly

 3) creiamo il ns file di restart di jboss 
touch .openshift/cron/hourly/restart_jboss.sh

4) aggiungiamo il seguente contenuto al suo interno

#!/bin/bash
echo "--------------------------------------------" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
date >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
NOW=$(date +"%H")
echo $NOW >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
echo 'resto' $RESTO '- cnfr' $CNFR >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
if [ "$NOW" -eq "03"\ ];then
        $OPENSHIFT_APP_CTL_SCRIPT restart;
        echo "restart jboss now:" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
else
        echo "no restart jboss now!!" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
fi
date >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
echo "--------------------------------------------" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log


5) creiamo una cartella in cui archiviare il log di restart:
mkdir cron_jboss
touch cron_jboss//cron.log

6) committiamo tutti i files su openshift
git add .openshift/*
git add cron_jboss/*
git commit -m"start with cron" .openshift/*
git commit -m"start with cron" cron_jboss/*
git push



7) link utili
https://www.redhat.com/openshift/community/forums/express/restart-jboss-with-cron
http://docs.redhat.com/docs/en-US/OpenShift_Express/2.0/html/User_Guide/sect-User_Guide-Scheduling_Timed_Jobs_with_Cron.html



giovedì 29 dicembre 2011

openshift: vedere lo spazio disco occupato

[UPDATE]

adesso c'è quota!!

è possibile aggiungerlo negli script client side (tipo post_deploy/pre_deploy) etc.



Al momento non c'è un comando che mostra chiaramente l'occupazione disco...
un domani forse verrà aggiunto tra le informazioni restituite da rhc-user-info -laccountname

Per ora, come recita:

https://www.redhat.com/openshift/community/forums/express/questions-on-express-quota
basta fare un login ssh 
ssh  $UUID@$HOSTNAME 

 e lanciare il comando:
$ du -sh ~ /tmp

( o simili 
http://www.magicmill.net/linux/grap/grap-11.html)
se lo spazio occupato è troppo alto, cominciate con le pulizie di natale con:
rhc-ctl-app -a nomeapplicazione -c tidy  -l account@gmail.com

openshift: vedere host e port

come suggeriscono nel forum:
https://www.redhat.com/openshift/community/forums/express/support-for-standalone-java-app


It'll be a port *and* IP you

It'll be a port *and* IP you need to bind to. Add the following to your .openshift/action_hooks/post_deploy script to see what you should be binding to:
echo "Bind to this port: $OPENSHIFT_INTERNAL_IP:$OPENSHIFT_INTERNAL_PORT"
Then use that IP and port for binding.

utile...

martedì 27 dicembre 2011

openshift: vedere il threaddump

prima eseguire il comando:
rhc-ctl-app -a appname -c threaddump -lxxxxx@gmail.com


e poi per rivedere il threaddump:

rhc-tail-files -f appname/jbossas-7.0/stdout.log -lxxxxx@gmail.com -a appname

verrò fuori qualcosa come:


Heap
 PSYoungGen      total 27136K, used 22338K [0x00000000fe000000, 0x00000000fff90000, 0x0000000100000000)
  eden space 22080K, 99% used [0x00000000fe000000,0x00000000ff588ad0,0x00000000ff590000)
  from space 5056K, 5% used [0x00000000ffa70000,0x00000000ffab8000,0x00000000fff60000)
  to   space 4992K, 0% used [0x00000000ff590000,0x00000000ff590000,0x00000000ffa70000)
 PSOldGen        total 64896K, used 34863K [0x00000000fa000000, 0x00000000fdf60000, 0x00000000fe000000)
  object space 64896K, 53% used [0x00000000fa000000,0x00000000fc20bd88,0x00000000fdf60000)
 PSPermGen       total 78656K, used 78637K [0x00000000f4200000, 0x00000000f8ed0000, 0x00000000fa000000)
  object space 78656K, 99% used [0x00000000f4200000,0x00000000f8ecb6b8,0x00000000f8ed0000)

per capire cosa sono:
http://javandoblog.blogspot.com/2010/08/per-chi-sviluppa-in-java-prima-o-poi.html