Why a job of dbms_job is BROKEN I have Oracle job that uses dbms_job package. I see that it becomes BROKEN:
Select job,what,BROKEN from dba_jobs; 
-------- ------------ -----------
1   statspack.snap; Y

I would like to know the reason it's BROKEN
ASAIK for scheduled job we have dba_scheduler_job_log view where we can see the fail reason, but what about dbms_job jobs?
And that is one of the reasons why everyone should forget DBMS_JOB and use DBMS_SCHEDULER.
DBMS_JOB jobs do not have history or any logging enabled. If a DBMS_JOB job fails, that should be reported in the database alert log. If a DBMS_JOB fails 16 times in a row, it will be automatically marked as broken.
Your job either failed 16 times in a row and was marked broken, or someone manually set it as broken.