Stało się. Oracle oficjalnie uruchomiło ścieżkę certyfikacji dla programistów ADF. Wiadomość opublikował wczoraj na swoim blogu Shay Shmeltzer. Egzamin oficjalnie nosi nazwę Oracle Application Development Framework Essentials (1Z1-554) i jak na razie jest w wersji beta – czyli ma służyć głównie wysądowaniu zainteresowania ścieżką certyfikacji z zakresu technologii Oracle Fusion oraz ustaleniu ostatecznego zakresu tematycznego. Dla bywalców forum dyskusyjnego OTN nie jest to zaskoczenie. Temat certyfikatów z ADF jest cyklicznie poruszany od co najmniej trzech lat. Na temat problematyki egzaminu można poczytać tutaj. Moje osobiste wrażenia są takie – sporo tego – nawet dla doświadczonego developera. Wrzucono do jednego worka w zasadzie całość technologii, lekko nawet poza nią wykraczając (ADF + SOA, WebCenter). Zresztą sam Shay napisał:
„...this is not a trivial exam - you should only apply if you actually have practical experience developing with ADF”.
Nie wiem też, jaka będzie forma tego egzaminu. Część pytań jest czysto teoretyczna, niektóre zagadnienia natomiast w zasadzie nie do opisania bez użycia JDeveloper'a. Cóż, wysłałem maila do autora postu i być może wkrótce będę wiedział coś więcej. Postaram się też skonfrontować zakres tematyczny egzaminu z tym, co napisane jest w dostępnej literaturze przedmiotu.
Pokazywanie postów oznaczonych etykietą ADF. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą ADF. Pokaż wszystkie posty
piątek, 26 listopada 2010
niedziela, 10 października 2010
ADF Business Components i zatwierdzanie transakcji - problem z obsługą wyjątków
W tym tygodniu spędziłem parę godzin na znalezieniu problemu, czemu nagle po wgraniu patch'a na serwer aplikacyjny Oracle'a przestała działać jedna z funkcji. Wyglądała mniej wiecej tak:
public void addDepartment(Number deptno, String dname, String loc){
ViewObject depts = getDeptView();
Row newDept = depts.createRow();
newDept.setAttribute("Deptno", deptno);
newDept.setAttribute("Dname" , dname);
newDept.setAttribute("Loc" , loc);
getDBTransaction().commit();
}
czyli nie robiła nic nadzwyczajnego poza zapisem wiersza do tabeli w bazie. Problem oczywiście odnalazł się w logach serwera. Po zrobieniu upgrade'u z wersji 10.1.3.3 do wersji 10.1.3.5 okazało się, że identyfikator sesji nie ma już 44 znaków tylko 64, a moja funkcja zapisywała ten identyfikator do bazy. Niestety framework nie propagował tego wyjątku do warstwy widoku-controlera i nie dodawał go do kolejki FacesMeassages. Oczywiście prawidłowo napisana funkcja w module aplikacji powinna wyglądać następująco:public void addDepartment(Number deptno, String dname, String loc){
ViewObject depts = getDeptView();
Row newDept = depts.createRow();
newDept.setAttribute("Deptno", deptno);
newDept.setAttribute("Dname" , dname);
newDept.setAttribute("Loc" , loc);
try{
getDBTransaction().commit();
}catch(JboException ex){
getDBTransaction().rollback();
throw new JboException(ex);
}
}
Jak widać, wbrew marketingowi, Oracle ADF nie robi za nas wszystkiego :). Warto o tym pamiętać, szczególnie wywołując procedury PL/SQL.
Etykiety:
ADF,
Business Components,
JDeveloper,
Oracle
Subskrybuj:
Posty (Atom)