Olás,
Passei na certificação de EJB Developer da Oracle dia 07/12/12.
Estudei pelo livro EJB 3 In Action (http://www.amazon.com/EJB-3-Action-Debu-Panda/dp/1933988347). Não precisa estudar os capítulos referentes a JPA. O problema desse livro é que ele é sobre EJB 3 e não 3.1, logo, é necessário estudar os tópicos do EJB 3.1 por fora.
Não achei esse livro muito bom não, mas dá para pegar os conceitos básicos e não deixa de ser um bom ponto de partida.
Após ler o livro comecei a fazer mocks. Utilizei o único que achei, o da Enthuware (http://enthuware.com/index.php/mock-exams/oracle-certified-expert/oceejbd-ejb-6). Ele é excelente e muito fiel a prova.
Conforme as dúvidas iam surgindo durante o mock eu sanava pela JSR (http://jcp.org/en/jsr/detail?id=318). A JSR não é boa para ser usado como Livro Texto (fonte inicial de aprendizado), pois não é um documento didático (não se espera que seja mesmo), mas é a melhor fonte de informações para dúvidas pontuais.
O método de estudo que adotei foi aprender por repetição. Fiz o mock inicial e os quatro mocks standards. Para cada mock eu fazia a primeira vez, depois revisava todas as questões e depois refazia o mock. A primeira vez a nota sempre era de baixa para média, mas na repetição a nota sempre era muito alta.
O tempo que gasto para fazer o mock pela primeira vez é por volta de 2 horas. A revisão precisa de 3 a 4 horas, pois é quando você realmente estuda. A repetição do mock demora 1 hora, pois você já está dominando os assuntos. É importante não decorar as respostas, mas sim conseguir explicá-las.
Para cobrir todos os tópicos da prova é necessário fazer os 4 mocks standards porque a distribuição das questões não está 100%. Tem mock que cai mais um assunto e do que outro.
Quando terminei de fazer os mocks, refiz as questões que eu nunca acertei (nem na primeira e nem na repetição) para todos os mocks. Tem uma funcionalidade para isso no software da Enthuware. Acreditem ou não, eu consegui não acertar 3 questões mesmo após esse último teste, mas a maioria eu acertei.
Passei com 90% e fiquei satisfeito com o tempo que gastei para estudar.
Boa sorte nos estudos.
Dicas de programação. A idéia é ir postando as soluções dos problemas que enfrento diariamente no desenvolvimento de software. Como minha memória é muito volátil, essa é a maneira que encontrei de lembrar de como resolvi cada problema. Quem sabe, de quebra, não acabo ajudando outras pessoas?
quarta-feira, 12 de dezembro de 2012
Passei! 1Z0-895 Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam
quarta-feira, 31 de outubro de 2012
Erro de configuração: "java.net.ConnectException: Connection refused"
Ás vezes um descuido ao editar um arquivo de configuração pode causar um transtorno enorme, principalmente quando o projeto está em fase de integração e com o cronograma apertado.
Como um exemplo prático, um sistema passou a não conseguir conectar mais com a base de dados de uma hora para outra, sem motivo aparente. A exceção era:
Exception in thread "main"
org.springframework.transaction.CannotCreateTransactionException: Could not open
JPA EntityManager for transaction; nested exception is
javax.persistence.PersistenceException:
org.hibernate.exception.LockAcquisitionException: Cannot open
connection
at
org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:375)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at
$Proxy18.startBeh(Unknown Source)
at
br.com.beh.Main.main(Main.java:58)
Caused by:
javax.persistence.PersistenceException:
org.hibernate.exception.LockAcquisitionException: Cannot open
connection
at
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614)
at
org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:41)
at
org.springframework.orm.jpa.DefaultJpaDialect.beginTransaction(DefaultJpaDialect.java:70)
at
org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:52)
at
org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:330)
... 7
more
Caused by:
org.hibernate.exception.LockAcquisitionException: Cannot open
connection
at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:110)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at
org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
at
org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
at
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
at
org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:38)
... 10
more
Caused by:
java.sql.SQLException: The Network Adapter could not establish the
connection
at
oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at
oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:480)
at
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)
at
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:508)
at
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203)
at
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
at
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
at
java.sql.DriverManager.getConnection(DriverManager.java:582)
at
java.sql.DriverManager.getConnection(DriverManager.java:154)
at
org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:174)
at
org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:165)
at
org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)
at
org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
at
org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:46)
at
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 15
more
Caused by:
oracle.net.ns.NetException: The Network Adapter could not establish the
connection
at
oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:328)
at
oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:421)
at
oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:630)
at
oracle.net.ns.NSProtocol.connect(NSProtocol.java:206)
at
oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:966)
at
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:292)
... 27
more
Caused by:
java.net.ConnectException: Connection refused
at
java.net.PlainSocketImpl.socketConnect(Native Method)
at
java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at
java.net.Socket.connect(Socket.java:529)
at
java.net.Socket.connect(Socket.java:478)
at
java.net.Socket.<init>(Socket.java:375)
at
java.net.Socket.<init>(Socket.java:189)
at
oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:127)
at
oracle.net.nt.ConnOption.connect(ConnOption.java:126)
at
oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:306)
... 32
more
Depois de várias horas debugando, descobrimos que esse erro foi causado por um erro na edição do database.properties, na string de conexão com a base.
A propriedade estava assim:
database.url = jdbc:oracle:thin:<IP>:1521:BASEDEDADOS
Para uma mente apressada e estressada é fácil não perceber que faltou um arroba (@) antes do IP. O correto é:
database.url = jdbc:oracle:thin:@<IP>:1521:BASEDEDADOS
Marcadores:
Connection refused,
Hibernate,
Java,
JDBC,
Oracle
terça-feira, 28 de agosto de 2012
Como descobrir a PK de uma tabela no Oracle
Use a query abaixo para descobrir a Primary Key (PK) de uma tabela no Oracle:
SELECT
B.COLUMN_NAME
FROM
ALL_CONSTRAINTS A,
ALL_CONS_COLUMNS B
WHERE
A.CONSTRAINT_NAME=B.CONSTRAINT_NAME AND
A.OWNER=B.OWNER AND
A.TABLE_NAME='<TABLE_NAME>' AND
A.CONSTRAINT_TYPE='P';
SELECT
B.COLUMN_NAME
FROM
ALL_CONSTRAINTS A,
ALL_CONS_COLUMNS B
WHERE
A.CONSTRAINT_NAME=B.CONSTRAINT_NAME AND
A.OWNER=B.OWNER AND
A.TABLE_NAME='<TABLE_NAME>' AND
A.CONSTRAINT_TYPE='P';
segunda-feira, 27 de fevereiro de 2012
Como pesquisar no conteúdo de arquivos em Unix
É uma tarefa comum ter que encontrar um padrão específico dentro de um arquivo ou mesmo procurar um arquivo que tenha uma string específica.
O comando grep pode ser usado para essa tarefa.
Ex:
> grep test *
Procura a string "test" dentro de todos os arquivos do diretório corrente
Procura a string "test" dentro de todos os arquivos de todos os sub-diretórios correntes
Na saída do grep ele mostra o arquivo e a linha onde encontrou o padrão.
Ele também pode ser concatenado com outros comandos. Por exemplo, para pesquisar todos os processos em execução no momento que tenham a string "test", use o comando abaixo:
> ps -ef | grep test
Marcadores:
grep,
Linux,
pesquisa em arquivos,
Solaris,
Unix
quarta-feira, 18 de janeiro de 2012
Lista completa das cem marcas mais valiosas em 2011
Lista das 100 marcas mais valiosas em 2011
Rank | Previous Rank | Brand | Region/Country | Sector | Brand Value ($m) | Change in Brand Value | |
---|---|---|---|---|---|---|---|
1 | 1 | United States | Beverages | 71,861 | 2% | ||
2 | 2 | United States | Business Services | 69,905 | 8% | ||
3 | 3 | United States | Computer Software | 59,087 | -3% | ||
4 | 4 | United States | Internet Services | 55,317 | 27% | ||
5 | 5 | United States | Diversified | 42,808 | 0% | ||
6 | 6 | United States | Restaurants | 35,593 | 6% | ||
7 | 7 | United States | Electronics | 35,217 | 10% | ||
8 | 17 | United States | Electronics | 33,492 | 58% | ||
9 | 9 | United States | Media | 29,018 | 1% | ||
10 | 10 | United States | Electronics | 28,479 | 6% | ||
11 | 11 | Japan | Automotive | 27,764 | 6% | ||
12 | 12 | Germany | Automotive | 27,445 | 9% | ||
13 | 14 | United States | Business Services | 25,309 | 9% | ||
14 | 8 | Finland | Electronics | 25,071 | -15% | ||
15 | 15 | Germany | Automotive | 24,554 | 10% | ||
16 | 13 | United States | FMCG | 23,997 | 3% | ||
17 | 19 | South Korea | Electronics | 23,430 | 20% | ||
18 | 16 | France | Luxury | 23,172 | 6% | ||
19 | 20 | Japan | Automotive | 19,431 | 5% | ||
20 | 22 | United States | Business Services | 17,262 | 16% | ||
21 | 21 | Sweden | Apparel | 16,459 | 2% | ||
22 | 23 | United States | Beverages | 14,590 | 4% | ||
23 | 24 | United States | Financial Services | 14,572 | 5% | ||
24 | 26 | Germany | Business Services | 14,542 | 14% | ||
25 | 25 | United States | Sporting Goods | 14,528 | 6% | ||
26 | 36 | United States | Internet Services | 12,758 | 32% | ||
27 | 31 | United States | Transportation | 12,536 | 6% | ||
28 | 29 | United States | Financial Services | 12,437 | 1% | ||
29 | 30 | United States | Alcohol | 12,252 | 0% | ||
30 | 27 | Switzerland | Beverages | 12,115 | -5% | ||
31 | 28 | Sweden | Home Furnishings | 11,863 | -5% | ||
32 | 32 | United Kingdom | Financial Services | 11,792 | 2% | ||
33 | 33 | Japan | Electronics | 11,715 | 2% | ||
34 | 35 | United States | FMCG | 11,372 | 3% | ||
35 | 34 | Japan | Electronics | 9,880 | -13% | ||
36 | 43 | United States | Internet Services | 9,805 | 16% | ||
37 | 39 | Canada | Media | 9,515 | 6% | ||
38 | 37 | United States | Financial Services | 9,091 | -3% | ||
39 | 44 | Italy | Luxury | 8,763 | 5% | ||
40 | 45 | France | FMCG | 8,699 | 9% | ||
41 | 42 | Netherlands | Electronics | 8,658 | 0% | ||
42 | 40 | United States | Financial Services | 8,620 | -3% | ||
43 | 41 | United States | Electronics | 8,347 | -6% | ||
44 | 48 | Spain | Apparel | 8,065 | 8% | ||
45 | 47 | United States | Business Services | 8,005 | 7% | ||
46 | 49 | Germany | Diversified | 7,900 | 8% | ||
47 | 53 | Germany | Automotive | 7,857 | 14% | ||
48 | 38 | Japan | Electronics | 7,731 | -14% | ||
49 | 46 | United States | FMCG | 7,609 | 1% | ||
50 | 50 | United States | Automotive | 7,483 | 4% | ||
51 | 51 | United States | FMCG | 7,127 | 3% | ||
52 | 58 | France | FMCG | 6,936 | 9% | ||
53 | 56 | France | Financial Services | 6,694 | 0% | ||
54 | 52 | United States | Financial Services | 6,634 | -4% | ||
55 | 57 | Switzerland | FMCG | 6,613 | 1% | ||
56 | 54 | Canada | Electronics | 6,424 | -5% | ||
57 | 59 | United States | Electronics | 6,414 | 5% | ||
58 | 55 | United States | Media | 6,383 | -5% | ||
59 | 63 | Germany | Automotive | 6,171 | 13% | ||
60 | 62 | Germany | Sporting Goods | 6,154 | 12% | ||
61 | 65 | South Korea | Automotive | 6,005 | 19% | ||
62 | 60 | United States | Restaurants | 5,902 | 1% | ||
63 | 61 | United States | Beverages | 5,604 | -3% | ||
64 | 70 | United States | Diversified | 5,598 | 19% | ||
65 | 64 | United States | FMCG | 5,376 | 6% | ||
66 | 69 | France | Luxury | 5,356 | 12% | ||
67 | 67 | Germany | Financial Services | 5,345 | 9% | ||
68 | 68 | Spain | Financial Services | 5,088 | 5% | ||
69 | 73 | Japan | Electronics | 5,047 | 16% | ||
70 | 77 | France | Luxury | 4,781 | 18% | ||
71 | 71 | United States | FMCG | 4,672 | 3% | ||
72 | 72 | Germany | Automotive | 4,580 | 4% | ||
73 | 76 | United States | Luxury | 4,498 | 9% | ||
74 | 81 | Netherlands | Energy | 4,483 | 12% | ||
75 | 82 | United States | Financial Services | 4,478 | 12% | ||
76 | 66 | United States | Internet Services | 4,413 | -11% | ||
77 | 79 | France | Alcohol | 4,383 | 9% | ||
78 | 78 | United States | Alcohol | 4,319 | 7% | ||
79 | 74 | United Kingdom | Financial Services | 4,259 | 1% | ||
80 | 88 | United States | Computer Software | 4,170 | 15% | ||
81 | 83 | United States | Restaurants | 4,092 | 3% | ||
82 | 80 | Switzerland | Financial Services | 4,090 | 2% | ||
83 | 75 | United States | FMCG | 4,072 | -2% | ||
84 | 84 | United States | Apparel | 4,040 | 2% | ||
85 | 90 | United States | Diversified | 3,945 | 10% | ||
86 | 85 | Mexico | Alcohol | 3,924 | 2% | ||
87 | 87 | Germany | FMCG | 3,883 | 4% | ||
88 | 92 | United Kingdom | Alcohol | 3,842 | 8% | ||
89 | 89 | United Kingdom | Alcohol | 3,841 | 6% | ||
90 | NEW | Japan | Automotive | 3,819 | N/A | ||
91 | 93 | Netherlands | Alcohol | 3,809 | 8% | ||
92 | 86 | Switzerland | Financial Services | 3,799 | 0% | ||
93 | 95 | Italy | Luxury | 3,794 | 10% | ||
94 | 94 | Switzerland | Financial Services | 3,769 | 8% | ||
95 | 100 | United Kingdom | Luxury | 3,732 | 20% | ||
96 | 97 | United States | Restaurants | 3,663 | 10% | ||
97 | NEW | United States | Diversified | 3,651 | N/A | ||
98 | NEW | Taiwan | Electronics | 3,605 | N/A | ||
99 | 91 | Italy | Automotive | 3,591 | 1% | ||
100 | 98 | United States | Automotive | 3,512 | 7% |
Fonte: http://www.interbrand.com
Marcadores:
coca-cola,
marcas mais valiosas
Assinar:
Postagens (Atom)